ios - Branch.io 没有通过通用链接查询参数以 $uri_redirect_mode = 2 重定向 url
问题描述
假设我有以下通用链接:
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 Scheme 深度链接模式:智能。
此选择器允许您控制 Branch 在通用链接和 Android 应用程序链接失败时如何以及何时使用 URI 方案打开您的应用程序。请参阅此处文档中的浏览器详细信息。
- 如果存在错误消息的风险,保守模式将永远不会使用 URI 方案。
- 建议使用智能模式,并使用分支数据在任何地方安全地使用 URI 方案,如果卸载应用程序,在某些浏览器中出现错误消息的风险很小。
- Aggressive 将强制 URI 方案无处不在,导致没有应用程序的用户在某些浏览器中看到错误消息。
如果您通过附加查询参数来创建链接,只需将控制参数附加到 URL。请确保对所有内容进行 URL 编码,以免链接中断。
有关更多详细信息,请参阅本文档: https ://docs.branch.io/deep-linking/routing/#option-2-let-branch-use-your-existing-deep-link-routing
如果您有更多疑问,请写信至 support@branch.io。
推荐阅读
- javascript - 使用引号和单引号时使用的第三个字符
- c++ - 在 clion 中使用 WSL 时 C++ 代码无法编译
- python - 如何根据列的子字符串值和计数使用 Python Dataframe 创建数据透视表?
- javascript - 当我使用 dataType 作为“文本”的 ajax 调用时,为什么浏览器会显示 XML 解析错误?
- javascript - 打开由javascript生成的链接并返回原始页面后如何使用selenium保留原始页面的元素
- javascript - 如何在图表js注释上添加图例
- javascript - 通过 iframe 嵌入的 Excel 默认打开特定的工作表
- javascript - 用cheerio检测内联元素?
- javascript - Javascript 等待/异步 - 这会导致竞争条件吗?
- swift - 无法将文本文件读入所需的数组格式