我有一个使用NativeScript + Angular构建的应用程序。
我必须共享一个链接(将打开我的应用程序的通用URL)。因此,点击共享按钮,应用程序将在其中共享页面的网址。然后,查看链接并点击链接的用户应直接使用(相同)已安装的应用打开。
这在清单文件中具有以下配置的Android上正常工作:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="www.test.com" />
<data android:scheme="https" />
</intent-filter>
我正在使用SocialShare插件共享网址:
share() {
let url = this.router.url;
SocialShare.shareUrl("http://www.test.com" + url, "http://www.test.com" + url);
}
但是在iOS上,链接仅在Safari上打开。我已经使用以下配置更新了info.plist文件
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>mytestapp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>http://www.test.com</string>
</array>
</dict>
我尝试使用自定义url方案,例如对info.plist模式进行“测试”,然后尝试共享以下url:test:// my_custom_routing,发现它可以正常工作。
如果恢复为通用url方案还不可行,我还缺少什么?
答案 0 :(得分:0)
直到v9.0,iOS才使用基于通用(http / https)的url方案。大多数应用使用SmartBanners,或者可能托管一段JavaScript代码,这些代码会将用户从Safari网页重定向到该应用。
尽管iOS现在开始支持通用url方案,但使用它们并不像Android那样容易。它需要几个步骤,
添加对通用链接的支持很容易。有三个步骤 需要服用:
创建一个包含JSON数据的apple-app-site-association文件 关于您的应用程序可以处理的URL。
将apple-app-site-association文件上传到HTTPS Web服务器。 您可以将文件放在服务器的根目录或 。众所周知的子目录。
准备好您的应用程序以处理通用链接。
您可以在设备上测试通用链接。
更多详细说明,请访问official Apple docs。