URL Scheme
App間跳轉,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
.
這兩個接口中攔截作進一步處理。App跳Safari,只要js傳過來的URL符合通用規范,以http,https等開頭即可,用
[[UIApplication sharedApplication] openURL:url]
打開即可,參考代碼如下:
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];
總結:所謂的URL Scheme中的“Scheme”正是代表著URL中的開頭部分,看下面這張圖,圖中的URL的Scheme就是http
:
[NSURL /NSURLComponents](http://nshipster.cn/nsurl/)
Universal Links
見這篇筆記:Universal Links通用鏈接應用跳轉總結以及坑。
JSPatch & JavaScript Core
見這篇筆記:JavaScriptCore_JSPatch小筆記。