假设我具有以下通用链接:
https://myapp.test-app.link/yXDv3WQKOA?$uri_redirect_mode=2&product_id=1
当我捕获了上述请求的响应时,我可以看到branch.io将使用默认值$ deeplink_path(来自:https://docs.branch.io/links/integrate/#deep-linking)触发深层链接
window.top.location = validateProtocol("myapp://open?link_click_id=71978436528162224363");
我的解决方法是重写$ deeplink_path并使用urlencode复制我的查询参数,例如:
https://myapp.test-app.link/yXDv3WQKOA?$uri_redirect_mode=2&product_id=1&$deeplink_path=open%3Fproduct_id%3D1
然后它可以触发带有查询参数的深层链接:
window.top.location = validateProtocol("myapp://open?product_id=1&link_click_id=71978436528162224363")
我的解决方法有效,但是看起来很糟糕,因为我必须复制查询参数,branch.io上是否有任何设置可以将查询参数从通用链接传递到我的深层链接?
该方法似乎是正确的。但是,如果要使用$ uri_redirect_mode = 2全局打开应用程序,则可以在链接设置中将URI方案深层链接模式设置为积极模式。
推荐的URI方案深层链接模式:智能。
此选择器允许您控制通用链接和Android应用链接失败时Branch使用URI方案打开应用的方式和时间。请参阅文档here中的浏览器详细信息。
如果要通过附加查询参数来创建链接,只需将控制参数附加到URL。请确保对所有内容进行URL编码,以免链接断开。
有关更多详细信息,请参阅此文档:https://docs.branch.io/deep-linking/routing/#option-2-let-branch-use-your-existing-deep-link-routing
如果您有更多疑问,请写信至[email protected]。