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)
<?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。
可参考苹果官方文档:【文档地址】
2.3: 服务器端支持苹果 Universal Links 功能。方法如下:
2.3.1:创建一个 apple-app-site-association 的文件,文件名必须叫 apple-app-site-association,注意无后缀名。文件内容示例如下:
{ "applinks": { "apps": [], "details": [ { "appID": "8DYK63463V.com.apicloudwx.test", "paths": ["*","/m/*"] }, { "appID": "8DYK63463V.com.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后的处理
现在用户点击某个链接,直接可以进我们的app了,但是我们的目的是要能够获取到用户进来的链接,根据链接来展示给用户相应的内容。 可以通过 api 对象下的 addEventListener 接口监听。详情参考:https://docs.apicloud.com/Client-API/api#c18
api.addEventListener( {name:'appintent'}, function(ret,err){ var appParam = ret.appParam; if(api.systemType == 'ios'){ var iosUrl = ret.iosUrl; } else { var sourceAppId = ret.sourceAppId; } } );
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com