最近公司项目要求在web网页端引导用户打开native APP
这个需求也很简单,相信我们大多数人的做法都是和web端商议,确认一个特殊的字符串,我们称之为scheme。我们在APP端设置好scheme,web端遇到想要打开APP的时候,只需要打开一个这样scheme://的url,我们也可以在//后面传递参数,只需要在AppDelete的代理中做相应的处理即可。
scheme的设置方法如图所示
Apple 在iOS9 时候对scheme 拉起应用做了一定的限制,有时会遇到不能拉起APP的情况。
在使用scheme打开其他APP时候,iOS9以上适配时候,记得在info.plist里面设置白名单
白名单设置方法参考
http://blog.csdn.net/xiaoxiaobukuang/article/details/51062963
iOS9 也给我们提供了一个新的拉起方式---通用链接
通用链接-服务端的配置
- 我们需要创建一个json 格式的文件,文件名为 apple-app-site-association ,不要有后缀名
- 将json 文件放在我们服务器的根目录或者.well-know的子目录下
- json 里面的AppID 由teamID + bundIeID组成
- paths 代表URL部分路径,只有在 域名+paths 路径符合时候才会拉起APP,* 则代表不管路径,只要域名符合都会打开
- json 文件只会在第一次安装时候下载,不会随服务器更改而自动更新
Apple官方提供了专门检测工具,您可以通过https://search.developer.apple.com/appsearch-validation-tool/ 进行检测
您可以通过是用 https://www.pinterest.com/ 查看正确返回结果样式
{
"applinks": {
"apps": [],
"details": [
{
"appID": "***********.com.abc.def",
"paths": [ "/sdk/news/details", "/videos/detail/8484339/" ]
},
{
"appID": "###########.com.abc.def",
"paths": [ "*" ]
}
]
}
}
附查看teamID的方法,需要打开 苹果开发者中心后台 https://developer.apple.com/
通用链接- 客户端的配置
- 在我们项目的 target 里面选择Capabilities ,打开Associated Domains ,注意添加域名的格式,前边要加applinks:
- 在XCode 中AppDelegate 中添加代码支持
如何检测是否设置成功
1.您可以将支持的链接拷贝在备忘录中,长按如果有“在APP 中打开” ,即说明设置成功
2.在Safari 中进行验证,输入支持的链接,滑动Safari 会有弹窗显示,是否在APP中打开
*** 第一次写这么多,文笔有点差劲,请大家多多见谅,有写的不周到的地方,请大家不吝指教 ***