问题 在iOS 11以下系统,WKWebView出现 An instance of class WKWebView was deallocated while key value observers were...以上崩溃问题,经发现是没有removeObserver或者delegate没有设置为nil产生 解决方法 在dealloc中: - (void)dealloc{ //防止iOS11以下奔溃
程序崩溃(见下图): 程序崩溃01.png 4....我以为设置背景色要在视图加载完毕viewDidLoad方法里执行才可以,于是就注释了loadView里面设置背景色的方法,结果(见下图): 程序崩溃02.png 5....终于搞清问题所在, 如果写了loadView方法就要先调用[super loadView]方法,不掉用的后果就是程序崩溃(见下图): 重写loadView方法,但是没有先调用[super loadView
然而不怕一万,就怕万一,总会有万一的情况,而这种情况还是出现在了上线之后,一旦返回null就会让App崩溃。后来和后台沟通了一下为什么会返回null,并且希望后台不要返回null。...我之前的处理方式是对可能返回null的地方进行一下判断,如果是null就不取值,然而发现这个工程量巨大,而且由于不确定到底哪些地方会返回null,会遗漏某些可能返回null的地方(其实在取数据的时候也可以先判断我们要取的数据是否是我们所需的类型...解决后台返回的null导致的崩溃问题就是在项目中导入一个分类:NullSafe。这个分类是一个外国的哥们写的,这个分类大概的作用就是将发送给null对象的消息发送给nil,这样就不会崩溃了。...当我们给null发送消息的时候,会发生崩溃,而给nil发送消息不回发生崩溃。
创建WKWebView lazy var webView: WKWebView = { // 创建WKPreferences let preferences = WKPreferences...与Swift交互起一个名字:callbackHandler,WKWebView给Swift发消息的时候会用到 // 此句要求实现WKScriptMessageHandler协议 configuration.userContentController.add...initial-scale=1.0, maximum-scale=1.0, user-scalable=0,user-scalable=no"/> iOS...传过来的值: 响应iOS <script...与Swift交互起一个名字:callbackHandler,WKWebView给Swift发消息的时候会用到 // 此句要求实现WKScriptMessageHandler协议
参数不能为空,否则会造成应用崩溃。...以下的设备会造成崩溃,原因是 WKWebView 在释放的时候,扔被强持有观察者。...*)webView stopURLSchemeTask:(id)urlSchemeTask { // 当前urlSchemeTask由于某些原因提前结束了(会收到...无法执行导致崩溃,最好建议弹窗应该使用 UIView 设计。...iOS 13 新增方法 contextMenu 的处理方法 contextMenu 的相关处理方法,暂时不理解在手机端有何用处。 FAQ WKWebView 中 H5 css 动画失效的问题?
关键词: WKWebView SIGSEGV(11) WebKit::LegacyCustomProtocolManagerProxy::stopLoading(unsigned long long...的ViewController被释放,但WKWebView内容还在加载中,即使在VC的 dealloc(swift版本的是 deinit 方法)中设置webView stoploading以及WKWebView...UIDelegate和navigationDelegate设置为nil,也会偶发该崩溃。...解决方案: WKWebView中的WKProcessPool类,设置成单例 代码:swift版 声明WKProcessPool为单例 // MARK: - 扩展WKProcessPool,使其变成单例...configuration) ---- 后面会说明查找分析问题过程以及其中原理 ---- bugly符号表解析后的出错堆栈截图 bugly自定义跟踪日志截图 方案有效的原因: WKProcessPool类的作用,以及崩溃触发的根本原因
JSValue 可以理解成 一种供iOS数据结构与JS数据结构相互转换的包装,也可以看成一种桥接关系,我们执行JS获取的结果就是通过JSValue对象进行包装传给客户端进行处理的,类型转换官方文档描述如下...JavaScript 获取定义的JavaScript变量 捕获执行异常 JavaScript 调用客户端 仔细看看JSValue的类型转换,就可以知道,JS中方法就是客户端中的闭包,不过这里楼主采用了Swift...和ObjC混编模式,至于原因下面会说一下: 实现方法: Swift版本如下,功能实现在本人看来应该是一样的,但在进行注入的时候出现了问题,导致执行方法出现了undefined。...,WKWebView是获取不JSContext的,那咋办?...没关系,WKWebView提供给了我们非常便利的交互,不详细说了!
一、iOS 平台中 UIWebView 与 WKWebView 有什么区别?...js 的交互; 注意: 大多数App需要支持 iOS7 以上的版本,而 WKWebView 只在 iOS8 后才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView ,iOS8 后用...WKWebView 页面样式问题 在 WKWebView 适配过程中,我们发现部分 H5 页面元素位置向下偏移或被拉伸变形,追踪后发现主要是 H5 页面高度值异常导致。...的强制类型转换错误,从而导致你应用崩溃。...然后就崩溃了。 3.
一、iOS 平台中 UIWebView 与 WKWebView 有什么区别?...: 大多数App需要支持 iOS7 以上的版本,而 WKWebView 只在 iOS8 后才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView , iOS8 后用 WKWebView...WKWebView 页面样式问题 在 WKWebView 适配过程中,我们发现部分 H5 页面元素位置向下偏移或被拉伸变形,追踪后发现主要是 H5 页面高度值异常导致。...的强制类型转换错误,从而导致你应用崩溃。...然后就崩溃了。 3.
一、iOS 平台中 UIWebView 与 WKWebView 有什么区别?...js 的交互; 注意: 大多数App需要支持 iOS7 以上的版本,而 WKWebView 只在 iOS8 后才能用,所以需要一个兼容性方案,既 iOS7 下用 UIWebView , iOS8...WKWebView 页面样式问题 在 WKWebView 适配过程中,我们发现部分 H5 页面元素位置向下偏移或被拉伸变形,追踪后发现主要是 H5 页面高度值异常导致。...的强制类型转换错误,从而导致你应用崩溃。...然后就崩溃了。 3.
} else { print("=======成功=======") } } } 注意:如果网络请求是 HTTP 而非 HTTPS,默认情况下,iOS...与Swift交互起一个名字:callbackHandler,WKWebView给Swift发消息的时候会用到 // 此句要求实现WKScriptMessageHandler configuration.userContentController.add...initial-scale=1.0, maximum-scale=1.0, user-scalable=0,user-scalable=no"/> iOS...传过来的值: 响应iOS <script...JavaScript 调用 WKWebView: // Swift方法,可以在JavaScript中调用 func userContentController(_ userContentController
好像是macOS10.10之后,以及iOS8之后,新出现的WKWebview组件就迅速的替代了Webview及UIWebView。...后者的确存在一些无法解决的bug,诸如架构导致的速度缓慢和内存泄漏。...一是WKWebview的文档,二是iOS类的文档。想要的macOS下面Webview的资料缈如黄鹤。 经过部分只言片语的资料指导和大量的实验,终于完成了工作。所以决定来烧烧冷灶,写出来记录一下。...新版本的macOS及iOS都强制必须使用https网页访问,如果需要支持老的http网页,还需要在Info.plist中增加一行:App Transport Security Settings,类型为字典项...String) //s是js函数的返回结果,可以是多种类型,本例要求是string 4.从js调用swift 前面的3部分都比较容易,跟WKWebview也大同小异。
由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView。 同样的用WKWebView也可以拦截URL,做JS 与OC交互。...提醒:WKWebView 是iOS 8 推出的WebKit.framework中的控件,只有app 不需要兼容iOS 7及以下的时候才可以使用。 先看动态效果图: ?...3.在iOS 9之前,WKWebView加载本地HTML会有一些问题。...app 崩溃。...所以使用这个API 就可以避免执行耗时的JS,或者alert 导致界面卡住的问题。
如果设置为YES,用户必须明确的点击页面上的元素或者相关联的输入页面来显示键盘;如果设置为NO,一个元素的焦点事件导致输入视图的显示和自动关联这个元素。...allowDisplayingKeyboardWithoutUserAction { Class class = NSClassFromString(@"WKContentView"); NSOperatingSystemVersion iOS...NSOperatingSystemVersion){11, 3, 0}; if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion: iOS...arg0, TRUE, arg2, arg3); }); method_setImplementation(method, override); } } @end Swift...-> Void extension WKWebView{ var keyboardDisplayRequiresUserAction: Bool?
先说说UIWebView中缓存的清除,代码只有一句: [[NSURLCachesharedURLCache]removeAllCachedResponses]; 再说WKWebView中缓存的清除...注意:只有在iOS9之后WKWebView才有清除缓存的方法,在写代码的时候切记对系统版本进行判断。 ...增加内容: 在iOS8上还会导致崩溃的代码: /* 导致iOS8奔溃的代码 */ self.webView.allowsBackForwardNavigationGestures
Podfile文件中 : platform :ios, ‘9.0’ Podspec文件中: s.ios.deployment_target = '9.0' 要始终保持这两个版本一致,不然pod...VibrationAcquistion框架时,更新到 Cocoapods 的时候出现一个错误,核心语句是 error: include of non-modular header inside framework module,在使用 Swift...的问题 (1)如果某个VC中引用了WKWebView,在iOS9系统下点击返回按钮返回上级页面的时候会造成crash....- (void)dealloc { self.webView.scrollView.delegate = nil; // Fix iOS9 crash. } (2)如果引用WKWebView的VC...中还有大标题,那么在iOS12上会出现偏移量的问题。
一、前言 近日,有朋友问我关于WKWebView与JS的交互问题,可我之前一直使用的是UIWebView,也不曾做过WKWebView的交互啊!...接下来大家一块学习下WKWebView是怎么实现原生代码和JS交互的。...三、WKWebView的代理方法 /*!...7 之后加入到标准库的,它对 iOS Native 与 JS 做交互调用产生了划时代的影响。...您使用此类有两个主要目的:支持并发 JavaScript 执行,并管理 JavaScript 和 Objective-C 或 Swift 之间桥接的对象的内存。
基于Swift 3 、 Xcode 8 、 iOS 10 下的WKWebView的使用。 首先是WKWebView的基本用法: var wk:WKWebView!...//定义的进度条 override func viewDidLoad() { super.viewDidLoad() self.wk = WKWebView(frame...CGRect(x: 0,y : 0, width: self.view.frame.width, height:self.view.frame.height) //定位wk位置 wk = WKWebView...forKeyPath: "estimatedProgress") wk.removeObserver(self, forKeyPath: "title") } 我们都知道,WKWebView...关于WKWebView中Html5图片上传,下一篇随笔我会说一下。
所有缓存的数据都可以自定义过期的时间,默认是1天.EGOCache支持多线程(线程安全),UITableView加载多张照片导致内存上涨的问题。...======== 的WebView与WKWebView MGTemplateEngine - MGTemplateEngine比较象PHP中的Smarty,FreeMarker和Django的模版引擎...WKWebViewTestDemo.swift - WKWebViewTestDemo:WKWebView新特性及JS交互,文章讲解。...Wrap.swift - 方便,易用的对象转JSON类库。 ======== 通讯录 快速查找联系人 - 类似微信联系人搜索的界面,快速查找联系人,并支持点击查询结果。...修复了一下崩溃的bug。 STClock - 仿锤子时钟。 GitUp - GitUp是一个可视化的Git客户端,能够实时的进行编辑,合并,回滚等多种操作,更多功能,请下载体验。
领取专属 10元无门槛券
手把手带您无忧上云