Adobe AIR中的iOS通用链接-文档?

时间:2018-09-11 21:37:42

标签: ios air adobe

在Adobe AIR中使用iOS通用链接的official Adobe documentation page已损坏-大概是网站格式的更改已删除了关键的实现信息。

没有要遵循的“步骤”,没有详细说明应在应用程序描述符中放入什么的代码段,也没有示例apple-app-site-association JSON文件。

问)在官方站点损坏的情况下,我在哪里可以找到此文档?

注意:与Android App Links documentation(具有所有相关的代码段)形成对比。

1 个答案:

答案 0 :(得分:2)

我已经通过web.archive.org backup恢复了页面-但这相对较慢。因此,我在下面复制了此缺失的内容。 Apple Universal Links doc对定义apple-app-site-association JSON文件的规范也很有帮助,而此medium article是一般性通用链接的很好概述。


简介

在iOS 9中,Apple引入了一种称为通用链接的深度链接功能。如果您的应用程序支持通用链接,则只需点击指向您网站的链接,即可将iOS 9用户重定向到您的应用程序。通用链接可让您用标准HTTP或HTTPS链接替换自定义URL方案。

以前,为了通过浏览器启动应用程序,我们使用了自定义URL方案。使用iOS 9,自定义URL方案有一些限制。例如: 为了使应用程序XYZ能够启动应用程序ABC,您需要将LSApplicationQueriesSchemes添加到ABC的info.plist中,以指定XYZ的URL方案以及您希望ABC打开的任何其他应用程序。

或者,在iOS9中,您可以使用通用链接功能来完成此任务。如果用户安装了您的应用程序,则通用链接适用于所有用户。该链接会将它们直接带入您的应用。如果他们没有安装您的应用,则该链接会在Safari中打开您的网站。

AIR如何支持通用链接

要使用通用链接创建AIR应用程序,您需要执行以下步骤:

1)应用描述符文件

如下所示,在您的app.xml文件中添加权利。

<iPhone>
  <Entitlements> 
  <![CDATA[ 
    <key>com.apple.developer.associated-domains</key> 
    <array>
      <string>applinks:www.exampledomain.com</string>
    </array>
  ]]> 
  </Entitlements> 
</iPhone>

注意事项:

  • 应该在供应配置文件中启用关联的域,以使通用链接正常工作。
  • www.exampledomain.com应该替换为您的网站地址。

2)apple-app-site-association JSON文件

当用户安装您的应用程序时,iOS会在您的Web服务器上检查此文件,以确保您的网站允许您的应用程序代表其打开URL。只有您可以创建和上传此文件,因此您的网站与应用程序之间的关联是安全的。

创建具有如下所示内容的JSON格式文件。

{
  "applinks": {
    "apps": [],
    "details": {
      "LKRHPA3TAK.com.exampledomain.app": {
        "paths":[ "*" ]
      }
    }
  }
}

注意事项:

  • apple-app-site-association文件中的apps键是必需的,应为空数组。
  • Details键的值是一个字典数组;您的网站支持的每个应用程序一本词典。数组中字典的顺序决定了寻找匹配项时系统遵循的顺序。
  • 每个特定于应用程序的词典都包含一个appID(在此为LKRHPA3TAK.com.exampledomain.app)和一个路径键。
  • appID密钥的值是应用程序的团队ID(在这里为LKRHPA3TAK)和分发包ID(在这里为com.exampledomain.app)。
  • paths键的值是一个字符串数组,用于指定应用程序支持的网站路径。
  • 此处指定的网站路径区分大小写。
  • 不应将JSON文件添加到文件名(只需将其保留为apple-app-site-association)即可。
  • 应该使用openssl命令和来自iOS可信机构的证书对JSON文件进行签名。有关详细信息,请参见Shared Web Credentials Reference
  • 该文件应上传到HTTPS Web服务器的根目录。

要通过浏览器调用应用程序,需要在浏览器中输入应用程序的通用链接。通过注册NativeApplication invokeEvent,可以在ActionScript代码中收到相同的内容。例如:

NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, invokeHandler)

参考

Release Notes | Flash Player® 19 AIR® 19

Apple文档

已知问题

  • [4042131]接收到额外的InvokeEvent,且参数数组为null。