1,什么是苹果 Universal Links 功能?
就是在苹果手机的浏览器(Safari,或者微信 App 内置的浏览器)上输入你们网站的网址会弹出在 “ *** ” 中打开的提示。其中 *** 是开通了该功能的你的 App。如附件截图所示。
2,怎么开通?
2.1 开通 Associated Domains。用你的苹果开发者账号登录苹果开发者中心,创建包名 (Bundle ID)的时候,在左侧列表里找到 Identifiers,选中后再找到你的 Bundle ID (包名),选中该包名,配置开启其 Associated Domains 功能。
2.2 配置 entitlements 文件。配置方法参考[论坛帖子](http://community.apicloud.com/bb ... iewthread&tid=47691)。配置示例如下:
```js
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:bjtest.apicloud.com</string>
</array>
</dict>
</plist>
```
其中 com.apple.developer.associated-domains 对应的值bjtest.apicloud.com 是配置的你的应用的 Universal Links。详情参考 [苹果文档](https://developer.apple.com/docu ... ink_to_your_content)
2.3 服务器端支持苹果 Universal Links 功能。方法如下:
2.3.1 创建一个 apple-app-site-association 的文件,文件名必须叫 apple-app-site-association,注意无后缀名。文件内容示例如下:
{ "applinks": { "apps": [], "details": [ { "appID": **.**.apicloudwx.test", "paths": ["*","/m/*"] }, { "appID": **.**.apicloud.openSDK", "paths": ["*","/m/*"] } ] } }
说明: appID:组成方式是 teamId.yourapp’s bundle identifier。如上面的 8DYK63463V 就是teamId。登陆开发者中心,在Account - Membership里面可以找到Team ID。
paths:对应域名中的path,用于过滤可以跳转到App的链接,支持通配符‘*’,‘?’以及‘NOT’进行匹配,匹配的优先级是从左至右依次降低。
2.3.2 上传该文件到你的域名所对应的根目录或者.well-known目录下,这是为了苹果能获取到你上传的文件。上传完后,自己先访问一下,看看是否能够获取到,当你在浏览器中输入这个文件链接后,应该是直接下载apple-app-site-association文件。苹果为了方便开发者,提供了一个网页来验证我们编写的这个apple-app-site-association是否合法有效,进入[验证网页](https://search.developer.apple.com/appsearch-validation-tool/)进行验证。
2.4 验证
以上步骤完成后,在 APICloud 平台云编译安装包到手机上,就可以测试验证改功能了。在iOS设备中的备忘录中输入App能识别的链接(如:https://bjtest.apicloud.com),然后直接点击此链接,就会直接跳转到你的app了。或是长按,在出现的弹出菜单中第二项是在’XXX’中打开,这也代表着成功。 2.5 进入app后的处理 api.addEventListener({ name:'appintent'},function(ret,err){ var appParam = ret.appParam; if(api.systemType == 'ios'){ var iosUrl = ret.iosUrl; } else { var sourceAppId = ret.sourceAppId; }});
|