公司接下来的项目需要用swift内嵌h5来实现, 以前没有做过swift项目, 现在慢慢将所学的一点一滴记录一下 一个是怕自己忘了- =, 再就是希望大家看到能帮助我哈哈哈
前几天想要直接用swift上手- =发现连初始化什么的都给忘记了, 又乖乖回去先用OC简单的做了一个webView的界面
效果如下:

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

  1. import UIKit
  2. //要导入JavaScriptCore.framework库
  3. import JavaScriptCore
  4. //在此签订UIWebViewDelegate协议
  5. class ViewController: UIViewController, UIWebViewDelegate {
  6. //输入框
  7. var textFiled = UITextField.init()
  8. var webView = UIWebView.init()
  9. override func viewDidLoad() {
  10. super.viewDidLoad()
  11. // Do any additional setup after loading the view, typically from a nib.
  12. //初始化textfield
  13. textFiled.frame = CGRectMake(20, 40, 260, 30)
  14. textFiled.borderStyle = .Bezel
  15. textFiled.clearButtonMode = .WhileEditing
  16. textFiled.backgroundColor = UIColor.whiteColor()
  17. self.view.addSubview(textFiled)
  18. //开始运行btn
  19. let btn = UIButton.init(frame: CGRectMake(290, 40, 30, 30))
  20. btn.setTitle("GO", forState: UIControlState.Normal)
  21. btn.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
  22. btn.addTarget(self, action: #selector(ViewController.btnAction(_:)), forControlEvents: UIControlEvents.TouchUpInside)
  23. self.view.addSubview(btn)
  24. //后退btn
  25. let backBtn = UIButton.init(frame: CGRectMake(btn.frame.origin.x + 40, btn.frame.origin.y, 30, 30))
  26. backBtn.setTitle("<", forState: UIControlState.Normal)
  27. backBtn.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
  28. backBtn.addTarget(self, action: #selector(ViewController.backBtnAction(_:)), forControlEvents: UIControlEvents.TouchUpInside)
  29. self.view.addSubview(backBtn)
  30. //前进btn
  31. let forwardBtn = UIButton.init(frame: CGRectMake(backBtn.frame.origin.x + 40, backBtn.frame.origin.y, 30, 30))
  32. forwardBtn.setTitle(">", forState: UIControlState.Normal)
  33. forwardBtn.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
  34. forwardBtn.addTarget(self, action: #selector(ViewController.forwardBtnAction(_:)), forControlEvents: UIControlEvents.TouchUpInside)
  35. self.view.addSubview(forwardBtn)
  36. webView.frame = CGRectMake(0, 80, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height - 80)
  37. webView.backgroundColor = UIColor.lightGrayColor()
  38. self.view.addSubview(webView)
  39. //设置代理(不要忘记!如果不设置就无法调用webView的代理方法)
  40. webView.delegate = self
  41. }
  42. /**
  43. * parameters就是参数,return type是返回类型
  44. func <#name#>(<#parameters#>) -> <#return type#> {
  45. <#function body#>
  46. }
  47. */
  48. func btnAction(btn:UIButton){
  49. //加载textfield中的网址
  50. let request = NSURLRequest.init(URL: NSURL.init(string: "http://" + textFiled.text!)!)
  51. webView.loadRequest(request)
  52. }
  53. func backBtnAction(backBtn:UIButton) {
  54. webView.goBack()
  55. }
  56. func forwardBtnAction(forwardBtn:UIButton) {
  57. webView.goForward()
  58. }
  59. /**
  60. *网页加载完成调用此方法
  61. */
  62. func webViewDidFinishLoad(webView: UIWebView) {
  63. //调用提示框方法
  64. setAlertShow()
  65. }
  66. //显示提示框
  67. func setAlertShow() {
  68. let jsString = String(format:"alert(123)")
  69. print(jsString)
  70. //交互
  71. webView.stringByEvaluatingJavaScriptFromString(jsString)
  72. }

运行效果如下:

swift版webView.gif

swift-初探webView与JS交互的更多相关文章

  1. webview与js交互(转)

    原文:http://www.cnblogs.com/vanezkw/archive/2012/07/02/2572799.html 对于android初学者应该都了解webView这个组件.之前我也是 ...

  2. webView和js交互

    与 js 交互 OC 调用 JS // 执行 js - (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *title = [web ...

  3. iOS webView与js交互在文本空格上输入文字

    项目要求:webview加载html网址,内容为填空题型文本,需要在横线上添加答案,并点击提交按钮后再将答案进行回显 正常加载的效果图片: 这个是用js交互后的效果图: 点击空格,输入想输入的答案,如 ...

  4. webview与js交互

     对于android初学者应该都了解webView这个组件.之前我也是对其进行了一些简单的了解,但是在一个项目中不得不用webview的时候,发现了webview的强大之处,今天就分享一下使用we ...

  5. [android] WebView与Js交互

    获取WebView对象 调用WebView对象的getSettings()方法,获取WebSettings对象 调用WebSettings对象的setJavaScriptEnabled()方法,设置j ...

  6. iOS开发 - Swift使用JavaScriptCore与JS交互

    一.前言 在这个提倡敏捷开发和H5横行的年代,原生App内嵌入一些H5页面已经成为一种流行的趋势.一套H5页面就可以适配复杂的iOS和Android页面,大量节省了开发和维护时间,如果本来就有移动端网 ...

  7. Android Webview 与JS交互

    Android中 WebView控件支持JS与本地代码的交互. // 是否允许在webview中执行javascript webSettings.setJavaScriptEnabled(true); ...

  8. Android中使用WebView与JS交互全解析

    1.概述首先,需要提出一个概念,那就是hybrid,主要意思就是native原生Android和h5混合开发.为什么要这样做呢?大家可以想象一下针对于同一个活动,如果使用纯native的开发方式,An ...

  9. Android原生webview中js交互

    http://www.cnblogs.com/android-blogs/p/4891264.html Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中, ...

随机推荐

  1. gitlab quickly install

    一.安装gitlab依赖环境 yum -y install vim wget epel-release  yum install curl policycoreutils openssh-server ...

  2. js两个页面之间URL传递参数中文乱码

  3. 使用纯 CSS 实现 Google Photos 照片列表布局

    文章太长,因为介绍了如何一步一步进化到最后接近完美的效果的,不想读的同学可以直接跳到最后一个大标题之后看代码.demo及原理就好,或者也可以直接看下面这个链接的源代码. 不过还是建议顺序读下去,因为后 ...

  4. HTTP获取信息的四种方式

    HTTP 从网络获取信息的四种方式 GET GET指代你在浏览器中输入网址,浏览网站时做的事.例如,我们使用 http://www.baidu.com 的时候,可以将GET想象成他说:"hi ...

  5. 目录处理文件&链接命令

    一.目录处理文件 1.删除文件或目录 rm -rf [文件或目录]           //remove:删除文件或目录  -r:删除目录  -f:强制 2.复制文件或目录 cp [选项] [原文件或 ...

  6. ZBrush带你发掘脸部雕刻的秘诀(上)

    骨骼,是一门基础艺术,几百年来一直为伟大的艺术大师所研究,它曾经,也将一直是创作现实且可信角色的关键,提高骨骼知识更将大大提高雕刻技能. 当然,这对于现实角色很重要,对卡通和风格化的角色也同样重要,底 ...

  7. img标签过滤加fs模块实现图片文件缓存

    方法一:function iCache(selector) { selector.each(function(data) { //msg(data); ! function(data) { var u ...

  8. Vue中的v-model与my97日期选择插件冲突

    Vue中的v-model指令只是一个语法糖,其具体实现是:监听input框的input事件,然后将用户输入的值赋值给input框的value属性 <input type="text&q ...

  9. Linux 命令查询系统负载信息

    linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令过去只显示系统运行多久.现在,可以显示系统已经运行了多长 时间,信息显示依次为:现在时间.系统已经运 ...

  10. 关于linux系统的sendmail使用中的问题与解决

    系统环境是ubuntu16.04 安装 sudo apt-get install sendmail 检查运行情况 sudo service sendmail status 结果如下,表示正在运行 ● ...