[英]URL scheme in iOS
我已經在應用程序中添加了URL方案。 URL方案為testapp://
。 當我在Safari中輸入文本testapp://
並點擊返回時,它啟動了我的應用程序。
然后我用testapp://placeid=12
進行了測試。 這將在iPad中啟動TestApp,但在iPhone中,我將顯示Cannot Open Page
並且無法進行測試。
我可以通過placeid=12
作為URL查詢。 但是我想知道的是,為什么它不能僅在iPhone中打開。
有什么想法嗎?
注意:無論設備類型如何,這似乎都是iOS問題。 這是iOS 6及更高版本的行為。
可能是每個設備都運行不同的iOS版本嗎?
如果是這樣,請根據版本考慮一些細節。 例如,如果您閱讀了高級應用程序技巧 ,則有一部分可以幫助您:
處理URL請求
具有自己的自定義URL方案的應用程序必須能夠處理傳遞給它的URL。 在啟動時或在應用程序運行時或在后台,所有URL都將傳遞給您的應用程序委托。 要處理傳入的URL,您的委托應實現以下方法:
- 使用application:willFinishLaunchingWithOptions:和application:didFinishLaunchingWithOptions:方法來檢索有關URL的信息並決定是否要打開它。 如果這兩種方法均返回NO,則不會調用您應用的URL處理代碼。
- 在iOS 4.2和更高版本中,使用application:openURL:sourceApplication:annotation:方法打開文件。
- 在iOS 4.1和更早版本中,使用application:handleOpenURL:方法打開文件。
希望這可以幫助。 否則,我會真的建議您遵守標准 。 這會讓您的生活更輕松:)
由於testapp:// placeid = 12不是有效的網址,因此可能無法正常工作。 您在那里也需要一個域名,例如testapp:// localhost / query?placeid = 12。 可能是'='字符導致錯誤。
我現在無法對其進行測試,所以請告訴我。
如問題注釋中所述,這是iOS 6的Safari瀏覽器行為。 在Safari中輸入時,URL的主機中不能包含“ =”。
相反,我以以下方式解決了這個問題。
發送郵件中的URL,如果我單擊URL,則從郵件中發送該應用程序。 但重要的一點是,我必須解析URL主機才能獲得該值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.