美文网首页
Universal Link & Deep Link

Universal Link & Deep Link

作者: 随缘吖 | 来源:发表于2016-12-06 12:30 被阅读106次

参考链接 http://strivingboy.github.io/blog/2015/09/27/ios9/

最近公司项目要求在web网页端引导用户打开native APP

这个需求也很简单,相信我们大多数人的做法都是和web端商议,确认一个特殊的字符串,我们称之为scheme。我们在APP端设置好scheme,web端遇到想要打开APP的时候,只需要打开一个这样scheme://的url,我们也可以在//后面传递参数,只需要在AppDelete的代理中做相应的处理即可。

scheme的设置方法如图所示

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/

查询 teamID 方法

通用链接- 客户端的配置

  • 在我们项目的 target 里面选择Capabilities ,打开Associated Domains ,注意添加域名的格式,前边要加applinks:
target 里设置域名
  • 在XCode 中AppDelegate 中添加代码支持
AppDelegate 中代码

*** 本想截两张效果图,结果APP出了点状况,暂时无法截取 。如果设置成功后,在Safari 访问时,轻微下拉 会有一个窗口,询问你是否在~~~app 打开 ***

*** 第一次写这么多,文笔有点差劲,请大家多多见谅,有写的不周到的地方,请大家不吝指教 ***

相关文章

网友评论

      本文标题:Universal Link & Deep Link

      本文链接:https://www.haomeiwen.com/subject/llhlmttx.html