最近公司项目要求在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-associatio ,不要有后缀名
- 将json 文件放在我们服务器的根目录下
- json 里面的APPID 由teamID + bundIeID组成
- paths 代表URL部分路径,只有在 域名+paths 路径符合时候才会拉起APP,* 则代表不管路径,只要域名符合都会打开
- json 文件只会在第一次安装时候下载,不会随服务器更改而自动更新
*** 网上帖子说可以通过https://search.developer.apple.com/appsearch-validation-tool/ 这个官网工具进行检测,但不知为何实践过程中,官方工具没有通过,但是还是可以正常使用 ***
{
"applinks": {
"apps": [],
"details": [
{
"appID": "***********.com.duodian.admoreSDK",
"paths": [ "/sdk/news/details", "/videos/detail/8484339/" ]
},
{
"appID": "###########.com.duodian.admoreSDK",
"paths": [ "*" ]
}
]
}
}
附查看teamID的方法,需要打开 苹果开发者中心后台 https://developer.apple.com/

通用链接- 客户端的配置
- 在我们项目的 target 里面选择Capabilities ,打开Associated Domains ,注意添加域名的格式,前边要加applinks:

- 在XCode 中AppDelegate 中添加代码支持

*** 本想截两张效果图,结果APP出了点状况,暂时无法截取 。如果设置成功后,在Safari 访问时,轻微下拉 会有一个窗口,询问你是否在~~~app 打开 ***
*** 第一次写这么多,文笔有点差劲,请大家多多见谅,有写的不周到的地方,请大家不吝指教 ***
网友评论