近期撰写wkwebview封装app了一篇关于Android WebView调试JSwkwebview封装app的文章wkwebview封装app,本文作为姊妹篇,将介绍iOS上如何调试WKWebView加载wkwebview封装app的HTML中的JS前提条件包括配置Mac计算机和iPhone手机,注册Apple ID,购买99美元一年的证书以签名App并发布到App StoreiOS研发门槛较高调试JS前需满足以下条件下载提供的Demo工程进行参考调试JS。

WebAPP所显示的Web页面都是由一个叫做WebView的组件渲染出来的,每个网页都有一个链接即URL,首先将URL转换成NSURLRequest,然后用加载网页的类WebView加载Request,使用 voidloadRequestNSURLRequest *request这个方法,就能将网页加载显示出来目前iOS中有两个加载网页的类,分别是UIWebView和WKWe。

wkwebview封装app的简单介绍  第1张

苹果最初告诉开发人员,自2020年12月起将不再接受使用UIWebView进行应用程序更新,但苹果现在为开发人员采用WKWebView提供wkwebview封装app了更多时间,并延长了截止日期目前没有新的截止日期,Apple计划在以后提供更新随着截止日期的延长,Apple今天还通知开发人员,App Store服务器通知能够提供订户状态的实时更新,从而实现。

OK,js和native交互的这个很好解决,最烦人的是cookie问题,当然 UIWebView 是真的‘香’,Cookie问题人家自行就给解决了,代价就是内存增加了 100MB+ ,呵呵内存问题,我随即更换了 WKWebView ,加载页面很快,内存很亮眼,退出控制器也释放占用,但是,这个‘但是’,一出现‘但是’就。

同时,Android 这个功能爆出过安全漏洞,那么,我们有没有别的方式实现同步调用呢我们以 iOS UIWebView 为例提供一种实现,WKWebView 和 Android 也可以参考为了找到问题的关键,我们看一下 iOS 中实现 js 调用 app 的通行方法首先,自定义 UIWebViewDelegate,在函数 shouldStartLoadWithRequest。

1在模拟器中打开应用,并点开需要调试WebView的页面2在Safari中点Develop iOS Simulator XXXapp,弹出Web Inspector进行调试真机调试 如果想用真机调试的话只能调试用Xcode编译安装的应用1先在设备上启用Web Inspector点Settings Safari Advanced,启用Web Inspector2。

Apple推出WKWebView已经有一段时间了,相对于UIWebView而言,内存占用只有UIWebView的一半左右,但是响应速度和效率上却是UIWebView的两倍#8195#8195总结WKWebView使用方法的帖子文章很多,这里不再赘述,这里重点总结一下cookies共享问题由于以上原因,导致WKWebView无法与App自身的CookiesUIWebView之间。

我们知道 ,ios 80以后,apple给出了一个WKWebView来替换 UIWebView,前者比后者在加载速度方面优化了很多,但是也有不少坑点,比如在拦截wkwebView的请求上,apple始终没有给出明确的API供开发者使用,正常情况下,我们自定义一个NSURLProtocol类,然后在AppDelegate里面register一波,就可以拦截到app内部。

iOS视频播放使用uiWebview和wkWebview,其中wkWebview自带AirPlay功能,可直接连接电视在Android上,使用Nativejs调用系统播放器播放视频,但视频状态无法回传给js层二Flutter APP开发采用的视频播放器 Flutter没有自带视频播放器,需使用第三方插件,如VideoPlayer或fijkplayerVideoPlayer较为简单,可。