1、创建WKWebview - (WKWebView *)webView{ if (!... _webView.scrollView.panGestureRecognizer.enabled = NO; } return _webView; } 2、获取服务端返回的...NSString *description = minstr([storeInfo valueForKey:@“description"]); //我这里更改一下html的格式,让其符合手机端展示,如果服务端返回的就是手机端展示的样式...description = [aaa stringByAppendingString:description]; [_webView loadHTMLString:description baseURL:nil...:jsString completionHandler:^(NSString *str, NSError *error) { if (error ==nil) { [arrImgURL addObject
configuration]; NSString *urlStr = [[NSBundle mainBundle] pathForResource:@"index.html" ofType:nil...WKWebView 提供了一个新的方法evaluateJavaScript:completionHandler:,实现OC 调用JS 等场景。...:@"setLocation('%@')",@"广东省深圳市南山区学府路XXXX号"]; [self.webView evaluateJavaScript:jsStr completionHandler...:completionHandler:没有返回值,JS 执行成功还是失败会在completionHandler 中返回。...completionHandler(); }]]; [self presentViewController:alert animated:YES completion:nil
progressView) // 添加观察者 webView.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil...in completionHandler() // 告知JS结果 })) self.present(alertVC, animated: true, completion: nil...completionHandler(true) // 告知JS选择结果 })) self.present(alertVC, animated: true, completion: nil...[0].text) // 告知JS结果 })) self.present(alertVC, animated: true, completion: nil) } } 4、WKScriptMessageHandler...data:\(String(describing: data)) error: \(String(describing: error))") }) } // MARK: - 调用JS的方法,并打印返回数据
didReceiveServerRedirectForProvisionalNavigation:(null_unspecified WKNavigation *)navigation; // 当内容开始返回时调用...//WKWebview 禁止长按(超链接、图片、文本...)弹出效果 [self.webView evaluateJavaScript:@"document.documentElement.style.webkitTouchCallout...='none';" completionHandler:nil]; [self.webView evaluateJavaScript:@"document.documentElement.style.webkitUserSelect...='none';" completionHandler:nil]; // [self.webView evaluateJavaScript:@"document.documentElement.style.webkitUserSelect...='none';" completionHandler:nil]; } - (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation
WKWebView网页通过注册并实现KVO方法,监听isNight值的变化,以切换网页背景颜色。...evaluateJavaScript:@"document.body.style.webkitTextFillColor=\"#8F999999\"" completionHandler:nil];...拟解决方案3 // 改变网页内容背景颜色 [self.myWKWebView evaluateJavaScript:@"document.getElementsByTagName('body')[0]....style.background='#616465'"completionHandler:nil]; // 改变网页内容文字颜色 [self.myWKWebView evaluateJavaScript...- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{ //先判断是否应该切换颜色
{ //页面加载完成时 webView.evaluateJavaScript( "document.documentElement.style.webkitUserSelect='none...';", completionHandler: nil ); webView.evaluateJavaScript( "document.documentElement.style.webkitTouchCallout...='none';", completionHandler: nil ) } 方式二 完全禁用长按事件 func webView(_ webView: WKWebView, didFinish...= nil){ for longPress in subview.gestureRecognizers!...= nil){ for longPress in subview.gestureRecognizers!
WebViewJavaScriptBridge 使用一个不可见的 iFrame 来触发消息传递, 应该是为了兼容 UIWebView 和 WKWebView。...JS 调用原生(以 WKWebView 为例) callHandler => _doSend 设置 iFrame 的 src 属性 WKWebView 代理方法- (void)webView:(WKWebView..._fetchQueue(); 返回 JS 发送的消息对象数组 拿到消息对象数组后,执行 - (void)flushMessageQueue:(NSString *)messageQueueString...|| messageQueueString.length == 0) { NSLog(@"WebViewJavascriptBridge: WARNING: ObjC got nil...*/ - (void)injectJavascriptFile { NSString *js = WebViewJavascriptBridge_js(); [self _evaluateJavascript
completionHandler(); }])]; [self presentViewController:alertController animated:YES completion:nil...在 4.4 以后,可以使用 evaluateJavascript 方法实现。loadUrl 方法使用起来方便简洁,但是效率低无法获得返回结果且调用的时候会刷新 WebView。...evaluateJavascript 方法效率高获取返回值方便,调用时候不刷新WebView,但是只支持 Android 4.4+。...中可以通过 evaluateJavaScript:javaScriptString 来实现,支持 iOS 8.0 及以上系统。...= nil) // javaScriptString 需要调用的 JS 代码 // completionHandler 执行后的回调 // objective-c [jsContext evaluateJavaScript
在WKWebView中加载下面的测试链接可以稳定重现白屏现象:http://people.mozilla.org/~rnewman/fennec/mem.html 这个时候webView.URL会变为nil...[webView reload] (这个时候webView.URL取值尚不为nil)解决白屏问题。...中,而IOS10上,JS执行document.cookie或服务器set-cookie注入的Cookie会很快同步到NSHTTPCookieStorage中,FireFox工程师曾建议通过reset WKProcessPool...在接入now直播的时候,我们发现在ios9上WKWebView会出现页面被拉伸变形的情况,最后发现是window.innerHeight值不准确导致(在WKWebView上返回了一个非常大的值),而H5...另一个crash发生在WKWebView退出前调用 -[WKWebView evaluateJavaScript:completionHandler:] 执行JS代码的情况下。
一、前言 近日,有朋友问我关于WKWebView与JS的交互问题,可我之前一直使用的是UIWebView,也不曾做过WKWebView的交互啊!...evaluateJavaScript("testInput('123')", completionHandler: { (data , error) in...) } // confirm //作为js中confirm接口的实现,需要有提示信息以及两个相应事件, 确认及取消,并且在completionHandler中回传相应结果,确认返回YES, 取消返回...[0].text) })) self.present(alertViewController, animated: true, completion: nil) } 4、获取网页中节点的数据...,结果为一个元素;如果没找到匹配的元素,则返回null document.querySelectorAll()//css选择符模式,返回与该模式匹配的所有元素,结果为一个类数组 六、JavaScriptCore
{ } func webView(_ webView: WKWebView, didFail navigation: WKNavigation!...-> Void) { completionHandler("哈哈"); } 交互 Swift调用JS方法 self.webview.evaluateJavaScript("loadData('123'...Bool) { self.webview.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil...= nil && self.webview.canGoBack){ self.navigationItem.leftBarButtonItems = [closeBarButtonItem...{ self.setNavi() //这一行是为了 页面加载完成后 调用js方法 加载数据 self.webview.evaluateJavaScript("loadData('
随着摒弃了对iOS老系统的支持,项目也开始逐步开始转向WKWebView,本想着新系统应该能填一些WKWebView的坑,结果发现还是还是坑不断,这次在iOS12又遇到一个神坑。...webView.evaluateJavaScript("navigator.userAgent") { [weak self] (result, error) in if self == nil...= nil { return } if let userAgent = result as?...并且调用了evaluateJavaScript: 更新其userAgent不生效。...navigator.userAgent") { self.webview.customUserAgent = agent + " customAgent" } self.tempWKWebView.evaluateJavaScript
然后点击下一页的按钮 通过js的响应显示另一个网页 最后通过下一页的按钮可以返回到首页。 本文仅仅是h5跟ios 的交互的入门 所以没有做细致的描述。...self.wkWebView.loading) { if (sender.tag == 123) {//电话 [self.wkWebView evaluateJavaScript...evaluateJavaScript:@"alertName('小红')" completionHandler:nil]; } if (sender.tag...== 345) {//信息 [self.wkWebView evaluateJavaScript:@"alertSendMsg('18870707070','周末爬山真是件愉快的事情...message:msg delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil] show]; } @end html代码
NSString *localHtml = [NSString stringWithContentsOfFile:urlStr encoding:NSUTF8StringEncoding error:nil...[self _evaluateJavascript:js]; if (self.startupMessageQueue) { NSArray* queue = self.startupMessageQueue...; self.startupMessageQueue = nil; for (id queuedMessage in queue) { [self...{-evaluateJavaScript: completionHandler:},这个API 不会立刻返回执行结果,js 的执行结果会在block 中返回。...当然如果我们调用Native 的时候,没有参数或者不需要Native 返回信息到js 中。
引言 富文本编辑器的应用场景:编辑商品详情 预览: 设计思路:编辑器基于WKWebview实现,Editor使用WKWebview加载一个本地editor.html文件,Editor使用evaluateJavaScript...--editor-->" withString:jsString]; 1.2 OC执行JS 文字的加粗、下划线、斜体等样式通过- (void)evaluateJavaScript:(NSString..._editor.setBold();"; [self evaluateJavaScript:trigger completionHandler:nil]; } WKWebView中需要针对不同操作系统进行相关方法的重写。...去掉WKWebView键盘自带的工具条:修改browserView的inputAccessoryView属性getter方法返回nil @interface WKWebView (HackishAccessoryHiding
webView.UIDelegate = self; // 导航代理 _webView.navigationDelegate = self; // 是否允许手势左滑返回上一级..., 类似导航控制的左滑返回 _webView.allowsBackForwardNavigationGestures = YES; //可返回的页面列表, 存储已打开过的网页...withError:(NSError *)error { [self.progressView setProgress:0.0f animated:NO]; } // 当内容开始返回时调用...block NSString *jsString = [NSString stringWithFormat:@"changeColor('%@')", @"Js参数"]; [_webView evaluateJavaScript...document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%d%%'", arc4random()%99 + 100]; [_webView evaluateJavaScript
WKWebViewWKScriptMessageHandlerController showAlertWithTitle:message.name message:message.body cancelHandler:nil...]; } II iOS执行JS 通过WKWebView的-evaluateJavaScript:completionHandler:方法来实现 WKWebView的-evaluateJavaScript...但只有在整个webView加载完成之后调用此方法才会有响应 2.1 执行JS iOS使用WKWebView的-evaluateJavaScript:completionHandler:方法执行拼接好的JS...代码; [self.webView evaluateJavaScript:@"ocToJs('loginSucceed', 'tokenString')" completionHandler...localHtmlClicked{ NSString *path = [[NSBundle mainBundle] pathForResource:k_localHtml4csdn ofType:nil
创建WKWebView lazy var webView: WKWebView = { // 创建WKPreferences let preferences = WKPreferences...{ // sayHello()是JS的方法 webView.evaluateJavaScript("sayHello('WebView你好!')")...WebView与JS交互" view.addSubview(webView) webView.loadHTMLString(html, baseURL: nil...{ // 调用JS方法 webView.evaluateJavaScript("sayHello('WebView你好!')")...{ (result, err) in // result是JS返回的值 print(result, err) } }
领取专属 10元无门槛券
手把手带您无忧上云