iOS上的通用URL方案

时间:2019-06-28 17:22:58

标签: ios nativescript

我有一个使用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方案还不可行,我还缺少什么?

1 个答案:

答案 0 :(得分:0)

直到v9.0,iOS才使用基于通用(http / https)的url方案。大多数应用使用SmartBanners,或者可能托管一段JavaScript代码,这些代码会将用户从Safari网页重定向到该应用。

尽管iOS现在开始支持通用url方案,但使用它们并不像Android那样容易。它需要几个步骤,

  

添加对通用链接的支持很容易。有三个步骤   需要服用:

     
      
  1. 创建一个包含JSON数据的apple-app-site-association文件   关于您的应用程序可以处理的URL。

  2.   
  3. 将apple-app-site-association文件上传到HTTPS Web服务器。   您可以将文件放在服务器的根目录或   。众所周知的子目录。

  4.   
  5. 准备好您的应用程序以处理通用链接。

  6.   
     

您可以在设备上测试通用链接。

更多详细说明,请访问official Apple docs