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 数据仅在长按并选择打开时有效的主要内容,如果未能解决你的问题,请参考以下文章
javascript 来自http://exisweb.net/link-tracking-universal-analytics