Branch.io:无法从JavaScript检测已安装的应用程序



我正在尝试使基本的旅程应用程序横幅工作。没有深层链接(在此阶段),只是用户访问我们的网站时的基本横幅,该网站允许他获得我们的iOS应用程序,或者如果已经安装了它,则可以启动它。问题在于,即使已经在设备上安装了应用程序,横幅也总是显示"进入应用商店"选项。

我已经查看了branch.io:javascript检测是否安装了移动应用程序以及其他类似的问题,没有任何帮助。

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

在网页中我做:

branch.init('My_key_live_xxx', null, function(err, data) {
    console.log('init...');
    console.dir(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] ?? {})
            }
        })

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

始终指向App-store的半功能,以防有人想预先看到问题:https://www.papereed.com/player

我想我想念关于branch.io的真正基本的东西,希望有人可以提供帮助。谢谢!

由于苹果方面的限制,当用户在Web浏览器上的通用链接上敲击(即Safari),如果该链接具有与当前网页相同的域名不要使用通用链接打开应用程序,而是在Safari中打开链接。您可以在此处阅读有关此行为的更多信息。

为了克服这一限制,分支为DeepView按钮后面的链接使用了不同的域,因此访问的域与当前的网页不同。DeepView按钮背后的链接使用格式的域" -app.link"。

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

对于'get/open in app'cta按钮更新:

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

强制将has_app变量重置以将旅程的横幅CTA从"下载"更改为"打开",请按照以下步骤操作:

  1. 单击下载按钮 - 这应该重定向他玩或应用商店
  2. 安装应用
  3. 带有Journeys Banner返回网页,该横幅仍应显示下载按钮
  4. 再次点击"下载"按钮 - 应用程序应打开(您更新了权利文件以包含-alternate.app.link),并且在旅程配置中指定的数据应适用于应用程序
  5. 关闭,然后使用Journeys Banner重新打开网页 - 横幅现在应该有一个"打开"按钮
  6. 点击"打开"按钮

请注意,仅在开发模式下才需要上述步骤才能进行测试。在生产中,用户不会看到这个问题。另外,请注意,CTA按钮可能需要一些时间进行更新。在高峰时段可能最多30分钟。

最新更新