Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >WKWebView与Javascript的交互作用

WKWebView与Javascript的交互作用
EN

Stack Overflow用户
提问于 2016-06-28 04:13:22
回答 1查看 2K关注 0票数 1

我很难在Swift中获得一个WKWebView来在加载的网页中触发一些javascript。我只是尝试使用javascript改变一个背景颜色在网站上,如果用户滑动左,右,或单击一个按钮。任何帮助都是非常感谢的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import UIKit
import WebKit

class myViewController: UIViewController, WKNavigationDelegate {

@IBOutlet var container: UIView!
var webView: WKWebView?

override func viewDidLoad() {
    super.viewDidLoad()

    self.webView = WKWebView()
    container.addSubview(webView!)

    webView?.allowsBackForwardNavigationGestures = true
    webView?.navigationDelegate = self

    let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(myViewController.handleSwipes(_:)))
    let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(myViewController.handleSwipes(_:)))
    leftSwipe.direction = .Left
    rightSwipe.direction = .Right

    view.addGestureRecognizer(leftSwipe)
    view.addGestureRecognizer(rightSwipe)
}

override func viewDidAppear(animated: Bool) {

    let frame = CGRectMake(0, 0, container.bounds.width, container.bounds.height)
    webView!.frame = frame

    let url = NSURL(string: "https://www.google.com")
    let request = NSURLRequest(URL: url!)
    self.webView!.loadRequest(request)

}

 @IBAction func buttonClick(sender: AnyObject) {
      webView?.evaluateJavaScript("document.getElementByID('hplogo').style.backgroundColor='red';", completionHandler: nil)

}   

func handleSwipes(sender:UISwipeGestureRecognizer){

    if (sender.direction == .Left){
       webView?.evaluateJavaScript("document.getElementByID('hplogo').style.backgroundColor='black';", completionHandler: nil)

    }

    if (sender.direction == .Right){
          webView?.evaluateJavaScript("document.getElementByID('hplogo').style.backgroundColor='green';", completionHandler: nil)

    } 
}

func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
  webView?.evaluateJavaScript("document.getElementByID('hplogo').style.backgroundColor='red';", completionHandler: nil)
}

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-28 06:52:14

你拼错了Javascript的函数名。应该是getElementById而不是getElementByID

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.getElementById('hplogo').style.backgroundColor = '...'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38075950

复制
相关文章
wkwebview加载完成_【Swift】WKWebView与JS的交互使用
近日,有朋友问我关于WKWebView与JS的交互问题,可我之前一直使用的是UIWebView,也不曾做过WKWebView的交互啊!接下来大家一块学习下WKWebView是怎么实现原生代码和JS交互的。
安德玛
2022/03/08
5.7K0
WKWebView的使用与JS交互详细解读
前言:     WKWebView 这是在iOS8.0之后增加的一个比UIWebView更加完善和强大的控件!看网上关于它的博客也是有许多的了,从各个方面总结一下这个WKWebView看网上说它主要是为了和JS做好交互产生的,我们也会相应的尝试一下。就先从它基本的说起! 一:和UIWebView相比它的不同处 1:和JS更好的做交互,也支持H5的一些新特性 2:加载进度条(下面会演示) 3:性能高,加载变得更快更可靠 二:从加载一张网页开始 1:使用这个WKWebView是要#import <WebKi
Mr.RisingSun
2018/01/12
3.1K0
WKWebView的使用与JS交互详细解读
iOS小技能:WKWebView与JS的交互
由于目前UIWebView 已经被抛弃了,因此推荐使用WKWebView的WKScriptMessageHandler实现iOS与JS交互
公众号iOS逆向
2022/12/19
7.4K0
iOS小技能:WKWebView与JS的交互
Swift与JS通过WKWebView互调
创建WKWebView lazy var webView: WKWebView = { // 创建WKPreferences let preferences = WKPreferences() // 开启js preferences.javaScriptEnabled = true // 创建WKWebViewConfiguration let configuration = WKWebViewConfiguration() // 设置WKWebVie
YungFan
2020/12/25
2.7K0
WKWebView
UIWebView自iOS2就有,WKWebView从iOS8.0(2014年9月WWDC)才有,毫无疑问,WKWebView相对UIWebVIew要优秀得多,主要表现在以下几点:
拉维
2019/08/12
6K0
WKWebView
iOS开发中的WKWebView与JS的交互
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53541088
用户1451823
2018/09/13
2.3K0
iOS开发中的WKWebView与JS的交互
WKWebView的使用
WKWebView的使用 前言 最近项目中的UIWebView被替换为了WKWebView,因此来总结一下WKWebView的使用。 示例Demo:WKWebView的使用 本文将从以下几方面介绍WKWebView: 1、WKWebView涉及的一些类 2、WKWebView涉及的代理方法 3、网页内容加载进度条的实现 4、JS和OC的交互 5、本地HTML文件的实现 一、WKWebView涉及的一些类 WKWebView:网页的渲染与展示 注意: #import <WebKit/WebKi
且行且珍惜_iOS
2018/06/19
3K0
WKWebView
我们要通过JS与webview内容交互,就需要到这个类了,它的所有属性及方法说明如下:
用户2491699
2018/08/09
3.3K0
iOS的WebView——WKWebView
前言 在iOS8中,苹果推出了WKWebView。WKWebView有一个突出特点,就是内存占用少。 但作为一个全新的WebView,API相比于之前的UIWebView肯定会有所不同。今天就在这里记录一下WKWebView的基本使用。 Webview的使用,通常包含以下几个部分:浏览器的基本设置,浏览器的各种回调,浏览器中js如何调用原生方法。 WKWebView基本使用 self.webview = [[WKWebView alloc]init]; [self.view addSubvi
Oceanlong
2018/07/03
3.6K0
【iOS】WKWebView的 keyboardDisplayRequiresUserAction
我们知道,UIWebView是有一个 keyboardDisplayRequiresUserAction属性的,默认为YES。如果设置为YES,用户必须明确的点击页面上的元素或者相关联的输入页面来显示键盘;如果设置为NO,一个元素的焦点事件导致输入视图的显示和自动关联这个元素。
MapleYe
2020/03/30
3.9K0
iOS_WKWebView与JS交互 Demo
webView初始化:WKPreferences, WKUserContentController -> WKWebViewConfiguration -> WKWebView
mikimo
2022/07/20
3.2K0
iOS_WKWebView与JS交互 Demo
WKWebView实现简单的轻应用WKWebViewWKWebView与js交互
WKWebView WKWebView是现代 WebKit API 在 iOS 8 和 OS X Yosemite 应用中的核心部分。它代替了 UIKit 中的UIWebView和 AppKit 中的WebView,提供了统一的跨双平台 API。如果你的app只需要支持iOS8.0之后的版本,那么非常建议你使用WKWebView来替代UIWbeView,性能不止提升了一个档次。 WKWebView与js交互 所谓轻应用,简单的来说就是原生应用集成了html页面入口,还能通过js与native实现交互,例
程序员不务正业
2018/06/14
1.3K0
WKWebView详解
WKWebView主要涉及到以下类或协议,各部分可能互相依赖,文章按照apple文档的划分对每一个模块进行了详细的解释。
殷源
2018/01/31
20.7K9
NSURLProtocol 对 WKWebView 的处理
之前写过一篇文章是关于基于 NSURLProtocol 做的 DNS 解析,其中对 NSURLProtocol 也有了简单的介绍,我们都知道他可以拦截所有基于 URL Loading System 中的请求,但是对于 WKWebview 里面所发出的请求即使他是 http/https 也无能为力,先来简单的了解下 WKWebView.
molier
2022/11/03
1.5K0
NSURLProtocol 对 WKWebView 的处理
清除WKWebView cookies
在UIWebView下,可以使用 [[NSURLCache sharedURLCache] removeAllCachedResponses];//清除缓存 WKWebView清除cookies的方法(iOS9以上) WKWebsiteDataStore *dateStore = [WKWebsiteDataStore defaultDataStore]; [dateStore fetchDataRecordsOfTypes:[WKWebsiteDataStore allWebsiteData
czjwarrior
2018/05/28
3.4K0
WKWebview 与App交互辅助工具类
之前lz公众号写个关于UIWebView的JS与App通信的文章,但是最新iOS审核规定需要替换掉UIWebView使用WKWebView才可以过审。但是之前有大量UIWebView交互的地方,怎么办?于是根据原有的交互经验抽离出来了LeeWKWebView……当然了希望大家能够喜欢,多多提意见
大话swift
2020/05/07
9240
WKWebView 那些坑
QQ空间开发团队
2017/08/15
17.5K2
WKWebView 那些坑
导语 WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用、内存泄漏的 UIWebView。WKWebView 拥有60fps滚动刷新率、和 safari 相同的 JavaScript 引擎等优势。 简单的适配方法本文不再赘述,主要来说说适配 WKWebView 过程中填过的坑以及善待解决的技术难题。 1、WKWebView 白屏问题 WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件
腾讯Bugly
2018/03/23
4.7K0
iOS 使用WKWebView
页面禁用长按事件 方式一 禁用长按选择 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { //页面加载完成时 webView.evaluateJavaScript( "document.documentElement.style.webkitUserSelect='none';", completionHandler: nil ); webView.evaluateJavaScri
码客说
2019/10/21
1.6K0
WKWebView 白屏问题
1、WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件,Network Loading 以及 UI Rendering 在其它进程中执行。初次适配 WKWebView 的时候,我们也惊讶于打开 WKWebView 后,App 进程内存消耗反而大幅下降,但是仔细观察会发现,Other Process 的内存占用会增加。在一些用 webGL 渲染的复杂页面,使用 WKWebView 总体的内存占用(App Process Memory + Other Pr
czjwarrior
2018/05/28
4.5K0

相似问题

与WKWebView的JavaScript同步本机通信

5301

WKWebview - Javascript与本机代码之间的复杂通信

712

WKWebView与MoovWeb

13

WKWebView与认证

12

WKWebview运行JavaScript

122
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文