首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们可以在没有苹果应用站点关联(AASA)的情况下测试iOS通用链接/深度链接吗?

我们可以在没有苹果应用站点关联(AASA)的情况下测试iOS通用链接/深度链接吗?
EN

Stack Overflow用户
提问于 2017-11-09 15:18:37
回答 3查看 7.9K关注 0票数 7

我已经在我的应用程序中实现了通用链接,但由于原因,AASA文件暂时不会上传到服务器上。

EN

回答 3

Stack Overflow用户

发布于 2018-01-24 09:22:47

是的,你真的可以!

您可以通过从终端调用此函数来测试您的应用程序对深度链接的响应,而无需实际实现远程端:

代码语言:javascript
复制
$ xcrun simctl openurl booted 'YOUR_LINK_HERE'

这将在你的应用的appDelegate中触发以下回调:

代码语言:javascript
复制
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool

...which正是您应该从深度链接中预期到的行为。

别忘了实际打开模拟器;-)

至于通用链接- appDelegate回调略有不同,但它是一个非常小的思想飞跃:

代码语言:javascript
复制
func application(_ app: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
        if let url = userActivity.webpageURL {
            // parse the url and decide how to handle the universal link

        }
    }
    return true
}
票数 5
EN

Stack Overflow用户

发布于 2017-11-09 18:29:34

不能,你必须在服务器上上传"apple-app-site-association“和你的捆绑包id和团队id。没有它你就不能测试。你也不能使用别人的"apple-app-site-association“文件来测试它,因为它的团队id和bundle id是不同的。

您可以将您的AASA文件上传到heroku服务器上进行测试。

票数 2
EN

Stack Overflow用户

发布于 2018-11-15 06:18:39

苹果似乎并不支持这一点。

但是,您可以直接从程序中的任何位置调用委托方法。

代码语言:javascript
复制
NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:NSUserActivityTypeBrowsingWeb];
activity.webpageURL = [NSURL URLWithString:@"https://<your-domain.com>/route"];

[UIApplication.sharedApplication.delegate application: UIApplication.sharedApplication continueUserActivity:activity restorationHandler:^(id restorableObjects) {

}];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47196056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档