當前位置:成語大全網 - 書法字典 - iOS喚醒應用的URL方案

iOS喚醒應用的URL方案

簡單來說,由於蘋果選擇使用沙盒機制來保護用戶的隱私和安全,APP只能訪問自己的沙盒數據,但也阻礙了應用之間合理的信息共享。所以蘋果提供了壹種在應用之間跳轉的方式:URL Scheme。如果您的應用程序需要其他應用程序來訪問某些功能或數據,那麽您需要在您的應用程序中定義相應的URL方案。當其他app使用URL方案訪問時,系統會根據URL方案進行匹配,從而拉起相應的app。

如果我們想更清楚地了解URL方案電話,我們需要了解以下概念:

這種比較就很容易理解URL Scheme的真正含義了。就是在iOS系統中定位相應的App,然後進行相應的操作。復雜的URL方案也可以傳遞參數。

所以說了這麽多,有壹種跳轉方式既能滿足跳轉的動態要求,又能靈活傳遞參數。這種方式就是使用URL方案進行動態跳轉。這也是非常推薦的使用方法。而且在組件開發的壹些嘗試中,這種跳轉模式也帶來了很多便利。

第三方應用可以通過向自己發送URL方案請求來證明自己沒有被劫持,如果沒有收到自己的URL方案,可以及時向用戶發送提醒;②使用MobileCoreServices服務中的Application Savailable for HandlingurlScheme()檢查所有註冊了URL方案的應用程序和處理序列,從而檢測自己或他人的URL方案是否被劫持。

註冊自定義URL方案有兩種方式。

這兩種報名方式本質上是壹樣的,只是地點不同。

我們需要在APPdelegate中實現相應的代理方法:

iOS 9.0以下

-(BOOL)application:(ui application *)application openURL:(NSURL *)URL source application:(ns string *)source application annotation:(id)annotation

IOS 9.0或以上

-(BOOL)application:(ui application *)application openURL:(NSURL *)URL source application:(ns string *)source application annotation:(id)annotation;

讓我們通過Safari來驗證壹下:

在應用程序中調用URL方案需要以下方法:

在iOS10.0下使用此方法:

-(BOOL)openURL:(NSURL *)URL NS _ DEPRECATED _ IOS(2 _ 0,10_0,"請使用openURL:options:completion handler:instead ")NS _ EXTENSION _ UNAVAILABLE _ IOS(" ");

在iOS10.0上使用此方法:

- (void)openURL:(NSURL*)url選項:(NSDictionary & ltUIApplicationOpenExternalURLOptionsKey,id & gt*)options completion handler:(void(^ _ _可空)(BOOL成功))completion ns _ available _ IOs(10 _ 0)ns _ extension _ unavailable _ IOs(" ");

還有壹種方法可以判斷對應的URL方案是否存在,這種方法壹般與上述方法壹起使用:

-(BOOL)canOpenURL:(NSURL *)URL NS _ AVAILABLE _ IOS(3 _ 0);

我們來驗證壹下: