iOS 应用内调用外部浏览器

有时候由于应用的限制,我们需要在应用内调用外部浏览器去打开一个网页链接。比如调用QQ浏览器。
此时可以在iTunes Stroe中下载QQ浏览器的ipa安装包,然后在我的应用程序中右击选择”在Finder中显示”。之后解压缩安装包。在打开的文件夹中选择Payload。选择mttlite右击”显示包内容”。

找到Info.plist文件并打开,找到URL TYPE并展开
iOS 应用内调用外部浏览器_第1张图片
可以看到URL Schemes为mttbrowser
同样的可以知道UC浏览的URL Schemes为ucbrowser

所以在代码中我们可以这样写。有时可能因为浏览器的差异会有不同

//QQ浏览器
NSString *toQQStr = [NSString stringWithFormat:@"mttbrowser://url=%@",url];
NSURL *toQQURL = [NSURL URLWithString:toQQStr];
[[UIApplication sharedApplication] openURL:toQQURL];

//UC浏览器
NSString *toUCStr = [NSString stringWithFormat:@"ucbrowser://%@",url];
NSURL *toUCURL = [NSURL URLWithString:toUCStr];
[[UIApplication sharedApplication] openURL:toUCURL];

但有时因为我们的手机中并未安装相关的应用,即调用
UIApplication中openURL方法返回false
则需要提示用户下载并自动进入到App Store 中的应用下载页。

那么问题来了,如何从应用内进入到App Store指定应用的下载页呢

我们可以在App Store中搜索应用点击分享按钮 选择短信分享。即可获取到该应用下载页的地址。如QQ浏览器在App Sore中的下载地址就是https://appsto.re/cn/Mc-dw.i
之后可以通过代码

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://appsto.re/cn/Mc-dw.i"]];

去打开应用在App Store中的下载页。

你可能感兴趣的:(iOS学习笔记)