branch.io:无法从javascript检测已安装的应用

时间:2017-09-21 12:12:12

标签: javascript ios iphone branch.io

我正在努力获得一个基本的旅程应用横幅。没有深层链接(在这个阶段),只是当用户访问我们的网站时允许他获得我们的iOS应用程序的基本横幅,或者如果它已经安装则启动它。 问题是横幅始终显示“进入应用程序商店”选项,即使应用程序已安装在设备上也是如此。

我在没有任何帮助的情况下查看了Branch.io: javascript detect whether mobile app is installed和其他类似的问题。

我已经运行了通用链接验证程序和ulv_script.sh,但它没有显示任何问题。

在我执行的网页中:

branch.init('My_key_live_xxx', null, function(err, data) {
    console.log('init...');
    console.dir(data);
});

调试时,data属性如下所示:

{data: "", data_parsed: {}, has_app: null, identity: null, referring_identity: null, …}

在ios-app的AppDelegate中我除此之外什么都不做:

let branch: Branch = Branch.getInstance()
        branch.initSession(launchOptions: launchOptions, andRegisterDeepLinkHandler: {params, error in
            if error == nil {
                // params are the deep linked params associated with the link that the user clicked -> was re-directed to this app
                // params will be empty if no data found
                // ... insert custom logic here ...
                print("params: %@", params as? [String: AnyObject] ?? {})
            }
        })

我认为这里不需要特殊代码,直到我真的想要链接到应用程序中的特定位置。现在我只想让应用程序打开(或实际上只是被检测到,因为需要检测打开按钮才能显示...)

半功能,始终指向应用程序商店版本,以防万一有人想要提前查看问题:https://www.papereed.com/player

我想我错过了关于branch.io的一些非常基本的东西,希望有人可以提供帮助。 谢谢!

1 个答案:

答案 0 :(得分:2)

由于Apple方面的限制,当用户点击Web浏览器(即Safari)上的Universal链接时,如果该链接与当前网页具有相同的域,则不使用Universal链接打开应用程序,但在Safari中打开链接。您可以阅读有关此行为的更多信息here

为克服此限制,Branch为Deepview按钮后面的链接使用不同的域,以便所访问的域与当前网页不同。 Deepview按钮后面的链接使用格式' -alternate.app.link'。

的域。

请确保您已在权利文件中添加了应用的-alternate.app.link域名。您可以在此处查看提供有关如何添加域的信息的文档。

对于“在应用中获取/打开”' CTA按钮更新:

这在开发过程中很常见。由于应用程序经常在设备上重新安装,因此分支用于确定应用程序是否安装在设备上的标志has_app处于故障状态。

要强制重置has_app变量,请从“下载”中更改Journey的横幅CTA。要打开'请按照以下步骤操作:

  1. 点击“下载”按钮 - 这应该重定向到Play或App Store
  2. 安装应用
  3. 返回带有Journeys横幅的网页,该横幅仍应显示“下载”按钮
  4. 再次点击“下载”按钮 - 应用程序应该打开(一旦您更新权利文件以包含-alternate.app.link),应该可以在应用程序中使用Journeys配置中指定的数据
  5. 关闭然后使用Journeys横幅重新打开网页 - 横幅现在应该有一个"打开"按钮
  6. 点击"打开"按钮
  7. 请注意,只有在开发模式下才需要执行上述步骤以进行测试。在生产中,用户不会看到这个问题。此外,请注意,CTA按钮可能需要一些时间才能更新。高峰时段可能长达30分钟。