iOS开发 设置通用链接(Universal Link )

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

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

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

scheme的设置方法如图所示

iOS开发 设置通用链接(Universal Link )_第1张图片
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/

iOS开发 设置通用链接(Universal Link )_第2张图片
查询 teamID 方法

通用链接- 客户端的配置

  • 在我们项目的 target 里面选择Capabilities ,打开Associated Domains ,注意添加域名的格式,前边要加applinks:
iOS开发 设置通用链接(Universal Link )_第3张图片
target 里设置域名
  • 在XCode 中AppDelegate 中添加代码支持
iOS开发 设置通用链接(Universal Link )_第4张图片
AppDelegate 中代码

如何检测是否设置成功

1.您可以将支持的链接拷贝在备忘录中,长按如果有“在APP 中打开” ,即说明设置成功
2.在Safari 中进行验证,输入支持的链接,滑动Safari 会有弹窗显示,是否在
APP中打开

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

你可能感兴趣的:(iOS开发 设置通用链接(Universal Link ))