当我们使用微信模块(wxPlus)使用IOS必须配置Universal Links。
Universal Links可以链接到您应用中的内容并安全地共享数据. 当用户点击Universal Links时,iOS会将链接直接重定向到您的应用程序,而无需通过Safari或您的网站进行路由。此外,由于Universal Links是标准HTTP或HTTPS链接,因此一个URL既适用于您的网站,也适用于您的应用程序。如果未安装您的应用程序,则系统会在Safari中打开URL,以使您的网站能够处理它。当用户安装您的应用程序时,iOS会检查存储在Web服务器上的文件,以验证您的网站是否允许您的应用程序代表其打开URL。只有您才能将此文件存储在服务器上,以确保网站和应用程序之间的关联。
在你的config.xml中添加配置
<feature name="wxPlus"> <param name="urlScheme" value="wxd**********"/> <param name="apiKey" value="wxd**********"/> <param name="apiSecret" value="**********"/> <param name="universalLink" value="https://xxx.xxx.com"/> </feature>
https://xxx.xxx.com 替换为你自己的域名
创建entitlements文件,该文件存放你在APP 根目录 res 目录下;文件命名 UZApp.entitlements。.entitlements是xml格式的文件!
文件内容:
<?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:xxx.xxx.com</string> </array> </dict> </plist>
xxx.xxx.com 替换为你自己的域名
已经制作的好的文件,下载下来自己修改 appopen.ipwas.cn 替换成你自己的域名!
下载链接:https://pan.baidu.com/s/1YS5VllSoIyEoPMMzdGE-JA 提取码:bnjf
开通 Associated Domains。 登录苹果开发者账号,在左侧列表里找到 Identifiers,选中后再找到你的 Bundle ID (包名),选中该包名,配置开启其 Associated Domains 功能。如下下图所示:
让服务器端支持苹果 Universal Links。为了更方便简单,我们已经给你制作了对应的文件,点击链接下载,你只要修改对应参数即可。
下载链接:https://pan.baidu.com/s/1hdBz5YeB_UpSqdGSgBUaqg 提取码:nkq3
下载完成后,使用编辑器打开该文件,修改 APPID
appID:组成方式是 teamId.包名ID。登陆苹果开发者中心,在Account - Membership里面可以找到Team ID。
正确的ID示范:DJOD55.cn.ipwas.oppopen
修改完成后保存,将该文件上传到你的域名所对应的根目录或者.well-known目录下,这是为了苹果能获取到你上传的文件。上传完后,自己先访问一下,看看是否能够获取到,当你在浏览器中输入这个文件链接后,应该是直接下载apple-app-site-association文件。苹果为了方便开发者,提供了一个网页来验证我们编写的这个apple-app-site-association是否合法有效,进入https://search.developer.apple.com/appsearch-validation-tool/进行验证。
以上步骤完成后,在 APICloud 平台云编译安装包到手机上,就可以测试验证改功能了。在iOS设备中的备忘录中输入App能识别的链接(如:https://appopen.ipwas.cn),然后直接点击此链接,就会直接跳转到你的app了。或是长按,在出现的弹出菜单中第二项是在’XXX’中打开,这也代表着成功。
api.addEventListener({ name:'appintent' },function(ret,err){ var appParam = ret.appParam; if(api.systemType == 'ios'){ var iosUrl = ret.iosUrl; }else{ var sourceAppId = ret.sourceAppId; } }); // 根据用途自己放在任意位置