URL Scheme
App間跳轉(zhuǎn),Safari跳App:配置URL Scheme的scheme為自定的特殊字段,在AppDelegae中的:
iOS9以下- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
.
iOS9以上- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
.
這兩個(gè)接口中攔截作進(jìn)一步處理。App跳Safari,只要js傳過(guò)來(lái)的URL符合通用規(guī)范,以http,https等開(kāi)頭即可,用
[[UIApplication sharedApplication] openURL:url]
打開(kāi)即可,參考代碼如下:
NSString *urlUTF8 = xxx;
// URL UTF-8 decoding
NSString *urlPretty = [urlUTF8 URLDecodedString];
// deal with Chinese characters
NSString *urlStr = [urlPretty stringWithURLEncoded];
NSURL *url = [NSURL URLWithString:urlStr];
[[UIApplication sharedApplication] openURL:url];
總結(jié):所謂的URL Scheme中的“Scheme”正是代表著URL中的開(kāi)頭部分,看下面這張圖,圖中的URL的Scheme就是http
:
[NSURL /NSURLComponents](http://nshipster.cn/nsurl/)
Universal Links
見(jiàn)這篇筆記:Universal Links通用鏈接應(yīng)用跳轉(zhuǎn)總結(jié)以及坑。
JSPatch & JavaScript Core
見(jiàn)這篇筆記:JavaScriptCore_JSPatch小筆記。