博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift-初探webView与JS交互
阅读量:6839 次
发布时间:2019-06-26

本文共 2833 字,大约阅读时间需要 9 分钟。

公司接下来的项目需要用swift内嵌h5来实现, 以前没有做过swift项目, 现在慢慢将所学的一点一滴记录一下 一个是怕自己忘了- =, 再就是希望大家看到能帮助我哈哈哈

前几天想要直接用swift上手- =发现连初始化什么的都给忘记了, 又乖乖回去先用OC简单的做了一个webView的界面
效果如下:

接下来, 我就一点点的把OC的代码用swift编写了

import UIKit//要导入JavaScriptCore.framework库import JavaScriptCore//在此签订UIWebViewDelegate协议class ViewController: UIViewController, UIWebViewDelegate {    //输入框    var textFiled = UITextField.init()    var webView = UIWebView.init() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //初始化textfield textFiled.frame = CGRectMake(20, 40, 260, 30) textFiled.borderStyle = .Bezel textFiled.clearButtonMode = .WhileEditing textFiled.backgroundColor = UIColor.whiteColor() self.view.addSubview(textFiled) //开始运行btn let btn = UIButton.init(frame: CGRectMake(290, 40, 30, 30)) btn.setTitle("GO", forState: UIControlState.Normal) btn.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal) btn.addTarget(self, action: #selector(ViewController.btnAction(_:)), forControlEvents: UIControlEvents.TouchUpInside) self.view.addSubview(btn) //后退btn let backBtn = UIButton.init(frame: CGRectMake(btn.frame.origin.x + 40, btn.frame.origin.y, 30, 30)) backBtn.setTitle("<", forState: UIControlState.Normal) backBtn.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal) backBtn.addTarget(self, action: #selector(ViewController.backBtnAction(_:)), forControlEvents: UIControlEvents.TouchUpInside) self.view.addSubview(backBtn) //前进btn let forwardBtn = UIButton.init(frame: CGRectMake(backBtn.frame.origin.x + 40, backBtn.frame.origin.y, 30, 30)) forwardBtn.setTitle(">", forState: UIControlState.Normal) forwardBtn.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal) forwardBtn.addTarget(self, action: #selector(ViewController.forwardBtnAction(_:)), forControlEvents: UIControlEvents.TouchUpInside) self.view.addSubview(forwardBtn) webView.frame = CGRectMake(0, 80, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height - 80) webView.backgroundColor = UIColor.lightGrayColor() self.view.addSubview(webView) //设置代理(不要忘记!如果不设置就无法调用webView的代理方法) webView.delegate = self } /** * parameters就是参数,return type是返回类型 func <#name#>(<#parameters#>) -> <#return type#> { <#function body#> } */ func btnAction(btn:UIButton){ //加载textfield中的网址 let request = NSURLRequest.init(URL: NSURL.init(string: "http://" + textFiled.text!)!) webView.loadRequest(request) } func backBtnAction(backBtn:UIButton) { webView.goBack() } func forwardBtnAction(forwardBtn:UIButton) { webView.goForward() } /** *网页加载完成调用此方法 */ func webViewDidFinishLoad(webView: UIWebView) { //调用提示框方法 setAlertShow() } //显示提示框 func setAlertShow() { let jsString = String(format:"alert(123)") print(jsString) //交互 webView.stringByEvaluatingJavaScriptFromString(jsString) }

运行效果如下:

swift版webView.gif

转载地址:http://huzul.baihongyu.com/

你可能感兴趣的文章
ICS Protocol Dissection
查看>>
Linux的DHCP服务配置
查看>>
我的友情链接
查看>>
【挨踢人物传】李晨光:兴趣铸就专业,努力决定成败
查看>>
横向ListView
查看>>
mysql主从同步操作
查看>>
全国省市数据
查看>>
判断文件夹大小并复制到另一个地方
查看>>
CISCO 路由器 HWIC-4ESW 配置案例
查看>>
1 张图秒懂 Nova 16 种操作 - 每天5分钟玩转 OpenStack(44)
查看>>
hostPath Volume - 每天5分钟玩转 Docker 容器技术(148)
查看>>
Liunx 终端 bash 提示符 修改 DIY
查看>>
jQuery 判断图片加载完毕例子
查看>>
Freemarker生成PDF
查看>>
IDC评述网:12月上旬全球域名解析服务商Top15
查看>>
Tomcat认证授权与简单的SSO
查看>>
ip 归属地查询
查看>>
php xampp redis扩展
查看>>
apache 403
查看>>
scanf函数
查看>>