swift-初探webView与JS交互

公司接下来的项目需要用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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值