美文网首页将来跳槽用
iOS 与web交互相关小结

iOS 与web交互相关小结

作者: wszyxc | 来源:发表于2019-08-22 18:48 被阅读4次

    1.iOS与web交互的四种方式

    (1).拦截URL(都适用)

    优点:兼容性最好的方式,iOS7之前的只能使用这种方式,不需要等到页面加载完就能实现OC调用JS或JS调用OC

    缺点:需要频繁的解释字符串得到相应的方法名和传值,且调用的方法也不能进行回调传值。

    (2).JavaScriptCore (仅适用于UIWebView,iOS7+)

    优点:比拦截URL使用更方便,效率更高

    缺点:必须等到页面加载完成才能实现OC调用JS

    (3).WKScriptMessageHandler (仅适用于 WKWebView,iOS8+)

    WKWebView有两个代理,一个是navigationDelegate,负责页面跳转相关,另一个是UIDelegate,负责UI事件相关。

    (4).WebViewJavaScriptBridge (都适用)

    使用简单,就是在OC环境和Javascript环境各自保存一个相互调用的bridge对象,每一个调用之间都有id和callbackid来找到两个环境对应的处理。但是这个框架本身有bug,好在已经有解决办法,只是作者一直没有更新。WebViewJavaScriptBridge的天然坑

    2.userAgent

    一般会在本身的userAgent基础上拼接一些会经常用到的信息,比如平台(ios,android),用户id等

    NSString *userAgent = [[[UIWebView alloc] init] stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];//取出系统的userAgent

    [[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent" : customUserAgent}];//替换成自定义的userAgent

    3.WKWebview

    优点:更多的支持H5特性,更流畅(高达60fps的刷新率),内置手势,增加了加载的进度属性,更细致的代理。

    缺点:WKWebView的坑(白屏问题,cookie问题,不支持URLProtocal拦截)

    4.iOS与web交互的问题

    ios web 交互的问题

    相关文章

      网友评论

        本文标题:iOS 与web交互相关小结

        本文链接:https://www.haomeiwen.com/subject/jjyjsctx.html