BranchIO Universal Link iOS 数据仅在长按并选择打开时有效

Posted

技术标签:

【中文标题】BranchIO Universal Link iOS 数据仅在长按并选择打开时有效【英文标题】:BranchIO Universal Link iOS data only works when long pressing and selecting open with 【发布时间】:2021-06-30 09:40:46 【问题描述】:

我已经实现了 BranchI 来处理通用链接,我已经阅读了文档,并且尽可能地一切正常。

我得到的行为是,当我长按并从菜单中选择使用“myApp”打开时,一切都很好并且按预期工作。

但是,如果我只是单击链接,应用程序将按预期打开,但 Branch Universal 对象没有链接应通过的数据。我已经给 Branch 支持发送了电子邮件,但他们已经好几天没有回复了。

非常感谢遇到此问题的任何人的帮助。

我正在运行一个使用 SwiftUI 部署到 ios14 的应用程序,但我确实有一个 appdelegate,我在 UIApplicationDidFinishWithOptions 中调用 Branch Universal 对象。

非常感谢

【问题讨论】:

【参考方案1】:

在您的应用程序中的签名和功能下,您必须将要在应用程序中打开的域添加为关联域。因此,您添加关联域功能并将您的域添加为应用链接(例如“applinks:casperzandbergen.nl”)。

这让 iOS 知道您的应用想要处理这些链接。但 iOS 也会询问服务器是否允许某个应用处理该域,以便其他人无法制作应用劫持我的域的流量。

要让 iOS 知道允许应用打开您域中的 url,您必须在您的服务器上托管一个权利文件,其中详细说明哪些应用可以打开哪些路径。

具体来说,您将您的权利 json 托管在 https://<the domain in your capabilities>/.well-known/apple-app-site-association

例如我有这个托管:


  "applinks":
    "apps":[],
    "details":[
      
        "appID":"<app id including team id>",
        "paths":["/*"]
      
    ]
  

这可行,但苹果描述的新语法不同:

https://developer.apple.com/documentation/xcode/supporting-associated-domains

【讨论】:

【参考方案2】:

请确保您添加了关联域功能在您的应用程序中的签名和功能下,您必须将要在您的应用程序中打开的域添加为关联域。

举例

applinks:www.amazon.com

这对于客户端应用程序来说已经足够了。但是有些应用会试图通过这个动态链接来窃取很多网站的流量,所以苹果需要添加apple-app-site-association来验证服务器。

关联域在域和您的应用之间建立安全关联,以便您可以从您的网站共享凭据或在您的应用中提供功能。

https://yourdomine.com/apple-app-site-association 托管您的苹果域名授权json

以下 JSON 代码表示一个简单关联文件的内容。


"applinks": 
    "details": [
        "appIDs": ["ABCDE12345.com.example.app", "ABCDE12345.com.example.app2"],
        "components": [
                "/": "/buy/*",
                "comment": "Matches any URL whose path starts with /buy/"
            
        ]
    ]
,
"webcredentials": 
    "apps": ["ABCDE12345.com.example.app"]
,

"appclips": 
    "apps": ["ABCED12345.com.example.MyApp.Clip"]


您可以在 Netflix 和 Youtube 这里看到 apple-app-site-association。

关联域 Click Here 的 Apple 文档

集成成功后会在 func scene(_ scene: UIScene, continue userActivity: NSUserActivity)或AppDelegate对应方法中调用。

【讨论】:

以上是关于BranchIO Universal Link iOS 数据仅在长按并选择打开时有效的主要内容,如果未能解决你的问题,请参考以下文章

Universal Link未在iOS 9的应用程序中打开

universal link使用

趣谈 iOS Universal Link

javascript 来自http://exisweb.net/link-tracking-universal-analytics

iOS 14 Universal Link失效问题

URL Scheme和Universal link