一、添加App Store的url scheme
接触过跳转其他app的都知道,首先需要在info.plist中添加url scheme
而App Store的url scheme是 itms-apps
如下图所示:
二、获取指定应用在app store的下载链接
主要是获取该应用在app store中的唯一id
这个可以通过手机获取
首先,在手机端打开app store,并找到你要跳转的应用的下载页面,如下图的淘宝:
点击红圈的三个点---->弹出下拉框,选择分享app ---->拷贝链接,然后任意粘贴在一个位置,就会获得如下信息
淘宝 - 移动生活社区 来自 Taobao (China) Software CO.,LTD
https://itunes.apple.com/cn/app/%E6%B7%98%E5%AE%9D-%E7%A7%BB%E5%8A%A8%E7%94%9F%E6%B4%BB%E7%A4%BE%E5%8C%BA/id387682726?mt=8
根据https中的链接,提取出如下链接:不需要htpps://和被url encode的中文,只需下如下的信息,其他app链接参考这个
itunes.apple.com/cn/app/id387682726?mt=8
三、增加体验感,增加提示框
只需要写一个统一提示方法
param:appInfo 是一个字典类型。
内容是:msg:提示框出现的提示信息,url:第二步中获取的appstore中的链接,跳转用
PS:下面只是一个形象的表示,在ios创建字典类型的数据下面的调用showAlert那几句代码中有,不要把这个当作正式代码
appInfo = {
msg:"即将跳转到App Store中下载淘宝"
url:"itunes.apple.com/cn/app/id387682726?mt=8"
}
showAlert方法:弹出提示框,并在点击安装选项时,直接跳到app store指定应用页面
/**
提示安装,跳转appstore
@param alertInfo 提示信息
*/
- (IBAction)showAlert:(NSDictionary *)alertInfo {
UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"安装提示"
message:alertInfo[@"msg"]
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"安装" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {
//响应事件
NSLog(@"action = %@", @"安装");
// 构建跳转app store的URL,执行跳转操作
NSURL *applink = [NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://%@", alertInfo[@"url"]]];
[[UIApplication sharedApplication] openURL:applink options:@{} completionHandler:nil];
}];
UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {
//响应事件
NSLog(@"action = %@", @"取消");
}];
[alert addAction:defaultAction];
[alert addAction:cancelAction];
[self presentViewController:alert animated:YES completion:nil];
}
在触发跳转的方法里面调用 showAlert方法
//构建跳转的应用的字典数据,包含提示框显示内容,以及跳转url
NSDictionary *taobaoInfo = [NSDictionary dictionaryWithObjectsAndKeys:@"即将跳转到App Store中下载淘宝", @"msg", @"itunes.apple.com/cn/app/id387682726?mt=8", @"url",nil];
//调用showAlert方法,并将字典数据传过去
[self showAlert:taobaoInfo];
OK,写到这里,基本可以测试,下面贴一下我测试的结果