iOS开发用如何用类"SKStoreProductViewController"跳转AppStore点赞评分?
大家都知道,评论和评分是决定app在appstore中排名的重要因素,但是大部分用户下载安装APP后却不会去点评,所以添加提示用户去点评的功能是很必要的。
目前,AppStore点赞评分有两种方法,一种是跳出应用,跳转到AppStore;进行评分.另一种是在应用内,内置AppStore进行评分.
| 序号 | 方法 | 备注 |
|---|---|---|
| ① | in:在应用内,内置AppStore进行评分 |
利用系统类:<br />SKStoreProductViewController |
| ② | out:跳出应用,跳转到AppStore,进行评分 |
利用方法:<br />[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]] |
方法一:在应用内,内置AppStore进行评分
1、添加依赖 #import<StoreKit/StoreKit.h>
2、添加代理 <SKStoreProductViewControllerDelegate>
3、添加代码:调用跳转方法 [self thumbsUpWithAppStore];
//赞一个
- (void)thumbsUpWithAppStore
{
SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];
//设置代理请求为当前控制器本身
storeProductViewContorller.delegate = self;
//加载一个新的视图展示
[storeProductViewContorller loadProductWithParameters:
//appId唯一的 @{SKStoreProductParameterITunesItemIdentifier : @"587767923"} completionBlock:^(BOOL result, NSError *error) {
//block回调
if(error){
NSLog(@"error %@ with userInfo %@",error,[error userInfo]);
}else{
//模态弹出appstore
[self presentViewController:storeProductViewContorller animated:YES completion:^{
}
];
}
}];
}
遵循代理SKStoreProductViewControllerDelegate:取消按钮监听
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController{
[self dismissViewControllerAnimated:YES completion:^{
}];
}
注意:appId是唯一的,appleID在 https://itunesconnect.apple.com 中创建应用即可在应用界面获得。下文有截图。
即不同的app不同的appid,请用自己工程的appid。
以上代码用云游平遥appid:587767923;
方法二:跳出应用,跳转到AppStore,进行评分
App Store上评论的链接地址有二种,分为iOS7前后链接:
| 分类 | 链接 | 说明 |
|---|---|---|
iOS7之前链接 |
itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id = xxxxxxxx |
其中xxxxxxxx为自己app的aped |
iOS7之后链接 |
itms-apps://itunes.apple.com/app/idxxxxxxxxx |
其中xxxxxxxx为自己app的appid |
代码:
-(void)goToAppStore
{
如果是7.0以前的系统
NSString *str = [NSString stringWithFormat:
@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d",];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]]; 如果是7.0以后的系统 NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id547203890"]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
}
**注意: **
这个appID 是itunes connect里面你提交app 时候自动生成的,是apple的唯一的ID。方法二中:将appid链接中将xxxxxxx替换为54720389。

iOS开发用如何用类"SKStoreProductViewController"跳转AppStore点赞评分?的更多相关文章
- iOS开发拓展篇—应用之间的跳转和数据传递
iOS开发拓展篇—应用之间的跳转和数据传 说明:本文介绍app如何打开另一个app,并且传递数据. 一.简单说明 新建两个应用,分别为应用A和应用B. 实现要求:在appA的页面中点击对应的按钮,能够 ...
- iOS开发中,应用内直接跳转到Appstore
iOS开发中,应用内直接跳转到Appstore 1.进入appstore中指定的应用NSString *str = [NSString stringWithFormat: ...
- iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
在上篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property ...
- ios开发:如何用js调用ios
本文转载至 :http://blog.chinaunix.net/uid-29415710-id-4058564.html - (BOOL)webView:(UIWebView *)webView s ...
- iOS开发实践:一个类微博客户端从启动到与用户交互的过程
本文基于数据字典和数据流图两种工具讲述一个完整微博客户端的实现.数据字典和数据流图都可以用来表达线程的执行流程,同时定义了需要的类,是进一步设计类的基础. 数据字典实际上是一张表,表的第一个字段是程序 ...
- iOS开发-使用Storyboard进行界面跳转及传值
前言:苹果官方是推荐我们将所有的UI都使用Storyboard去搭建,Storyboard也是一个很成熟的工具了.使用Storyboard 去搭建所有界面,我们可以很迅捷地搭建出复杂的界面,也就是说能 ...
- iOS开发-OC语言 (二)类的设计
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica } p.p2 { margin: 0.0px 0.0px 0.0px 0. ...
- 【iOS开发】如何用 Swift 语言进行LBS应用的开发?
本文分为三部分,第一部分详解用Swift语言开发LBS应用,并给出完整的示例与源代码:第二部分介绍如何申请LBS密钥,第三部分是综合示例查看,扫描二维码即可查看示例demo. 第一部分 使用Swift ...
- IOS开发——02_第一个类的创建、声明…
在OC中,一般用2个文件来描述一个类: 1..h:类的声明文件,用于声明成员变量.方法.类的声明使用关键字@interface和@end. 注:.h中只是用做方法声明,并不进行实现.什么叫声明呢?简单 ...
随机推荐
- elasticsearch 多列 聚合(sql group by)
文档数据格式 {"zone_id":"1","user_id":"100008","try_deliver_t ...
- 分享泛微公司OA系统用于二次开发的sql脚本
本单位用的oa系统就是泛微公司的oa协同办公平台,下面是我对他进行二次开发统计用到的写数据库脚本,只做开发参考使用,对于该系统的二次开发技术交流可以加我q:2050372586 [仪表盘]格式sql编 ...
- 2018-10-15 21:07:38 c language
2018-10-15 21:07:38 c language C语言编译器,神奇的魔法师 在类 UNIX 系统(Linux.Mac OS 等)下,可执行程序没有特定的后缀,系统根据文件的头部信息来判断 ...
- 如何优雅使用Coursera ? —— Coursera 视频缓冲 & 字幕遮挡
Coursera 视频缓冲 其实这个问题的根本是coursera上视频源d3c33hcgiwev3.cloudfront.net被墙,而ss的pac并未及时更新所导致的. 1 chrome 插件 - ...
- 2Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
public class TestException { public static void main(String[] args) { String str = "1"; fo ...
- 【Python】Java程序员学习Python(六)— 流程控制、异常处理
和Java语言一样,Python也有基本的流程控制,简单了解下即可. 一.流程控制的元素 条件 条件就是布尔值或者布尔值的表达式,要么是True要么是False. 代码块 在Python中,代码块不是 ...
- redis介绍(4)实战场景
redis我主要在两方面说明: 集群下的session的管理 Tomcat 与 DB之间缓存
- Ubuntu 安装python
1. wget http://mirrors.sohu.com/python/3.6.0/Python-3.6.0.tar.xz wget https://www.python.org/ftp/pyt ...
- mac下连接阿里云总是提示密码是吧,permission denied
早上使用mac连接阿里云服务器 ,总是提示 连接拒绝 之前还是好好的,密码自己有没有改过... 搞了半天,是 没输入用户名.... 上图中 输入 用户 然后输入密码就行了.
- Oracle 处理坏块
本文主要介绍如何去处理在Oracle数据库中出现坏块的问题,对于坏块产生在不同的对象上,处理的方法会有所不同,本文将大致对这些方法做一些介绍.因为数据库运行时间长了,由于硬件设备的老化,出现坏块的几率 ...