我的應用程序使用在不同的屏幕上:當我在自己的應用程序中調用openURL時,如何使用通用鏈接?
[[UIApplication sharedApplication] openURL:url];
爲了打開網址從我的web服務接收。 有時,這些URL與我的項目無關,所以打開它們到Safari即可。其他人,這些URL屬於我自己的,就像產品的細節。那些可以通過我的應用程序使用通用鏈接打開並轉到正確的屏幕,但這不會發生。
閱讀蘋果文檔我看到了這一點: 「來理解,如果你的應用程序使用的OpenURL是很重要的:打開一個通用的鏈接到你的網站,鏈接在你的應用程序不打開在這種情況下,iOS的承認該呼叫源自您的應用,因此不應該被您的應用處理爲通用鏈接。「 https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html
這種行爲讓我感到困惑。我如何使用openURL嘗試在應用程序中處理第一個URL,而不是直接進入Safari?
我發現了一個快速/髒的解決方法。刪除openURL並在每次我的應用使用openURL時使用:
NSUserActivity * userActivity = [[NSUserActivity alloc] initWithActivityType:NSUserActivityTypeBrowsingWeb]; userActivity.webpageURL = url; [[UIApplication sharedApplication] .delegate application:[UIApplication sharedApplication] continueUserActivity:userActivity restorationHandler:nil];
請注意,我的appdelegate應用程序:continueUserActivity:restorationHandler:將轉發到openURL在我的應用程序中沒有特定屏幕的任何URL,因此它工作得很好,但我覺得這是一個糟糕的解決方案。 你有什麼想法或建議嗎?
你能解釋一下更詳細嗎?您需要處理一些網址並在您的應用中打開它,並跳過一些鏈接並在Safari中打開它? –