我在iOS应用中使用了deeplink
customAppScheme:// OPENID#ID = 12345
这表示打开特定的项目页面。
我想在动态链接中使用相同的内容。
使用自定义网址生成器
长网址:https://<myCode>.app.goo.gl/?ibi=com%2Ecompany%2EmyAPP&ius=customAppScheme%3A%2F%2FopenID%23ID%3D12345&isi=1234567890&imv=1%2E0&ifl=https%3A%2F%2Fgoogle%2Ecom&link=https%3A%2F%2Fgoogle%2Ecom
绝对网址:https://<myCode>.app.goo.gl/?ibi=com.company.myAPP&ius=customAppScheme://openID#ID=12345&isi=1234567890&imv=1.0&ifl=https://google.com&link=https://google.com
短网址:https://<myCode>.app.goo.gl/aHS1Vq5RZYL6kGR02
构建ID:&#34; com.company.myAPP&#34;
customScheme:&#34; customAppScheme:// openID#ID = 12345&#34;
如果我使用长URL,它可以正常工作。 (我在备注中添加链接并单击链接。) 该应用程序打开并转到给定的项目页面。
但是当我使用短网址时,应用会打开,但之后别无其他。它没有进入项目页面。
PFB我的app委托方法。
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
guard let dynamicLinks = DynamicLinks.dynamicLinks() else {
return false
}
let handled = dynamicLinks.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
if let dynamiclinkURL = userActivity.webpageURL, let urlComponents = URLComponents(url: dynamiclinkURL, resolvingAgainstBaseURL: true) {
if let queryItems = urlComponents.queryItems {
queryItems.forEach { queryItem in
if let value = queryItem.value, queryItem.name == "ius" {
handelLink(url: value)
}
}
}
}
}
return handled
}
此方法适用于长网址。但是对于简短的网址,这不起作用。 如果我做错了什么并错过了什么,请告诉我。
提前致谢。
答案 0 :(得分:1)
请确保短链接与长链接具有相同的参数。
要比较链接,请导航到每个链接的调试页面。将char names[SIZE][LENGTH];
while(fgets(names, LENGTH, stdin) != '\0')
参数附加到链接的末尾以获取调试页面的URL。对于短链接,调试页面为d=1
,用于长链接https://<myCode>.app.goo.gl/aHS1Vq5RZYL6kGR02?d=1