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
:
Universal Links
见这篇笔记:Universal Links通用链接应用跳转总结以及坑。
JSPatch & JavaScript Core
见这篇笔记:JavaScriptCore_JSPatch小笔记。