公司接下来的项目需要用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

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. shell 杂集

    1.shell 相等比较注意 -eq 数字相等的比较 == 字符串相等的比较 2.== 和 = 的区别 == 可用于判断变量是否相等,= 除了可用于判断变量是否相等外,还可以表示赋值. = 与 ==  ...

  2. 多个tomcat配置,解决冲突问题

    一.一般修改 路径: /opt/apache-tomcat/conf/server.xml 1.第一个tomcat使用默认配置 2.第二个tomcat一般配置 二.特殊修改 1.第二个tomcat特殊 ...

  3. wordpress插件推荐

    以下插件可以全部到后台插件中心安装,只需使用关键词搜索即可 安全插件:Wordfence Security 后台增加一道密码:Stealth Login Page 隐藏后台登录地址:WPS-Hide- ...

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

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

  5. 3) 十分钟学会android--建立第一个APP,建立简单的用户界面

    在本小节里,我们将学习如何用 XML 创建一个带有文本输入框和按钮的界面.下一节课将学会使 APP 对按钮做出响应——按钮被按下时,文本框里的内容被发送到另外一个 Activity. Android ...

  6. 关于如何成为高级java程序员

    今日,对如何进一步提升java.成为一个高级的程序员有了兴趣,在网上看到一篇回答,感觉不错,记下来 总结了以下六点:一.JAVA基础 要想成为高级Java程序员,Java是一定要学习的.要成为高级程序 ...

  7. SVN冲突出现原因及解决方法浅谈

    缘由 很简单,用svn合base,出现了各种各样奇怪的问题,虽然最终没有造成什么大的线上问题,但过程也是曲折的,耗费个人精力,也占用他人资源,不好不好,一点都不佛系. 究其原因,还是对为什么出现各种冲 ...

  8. 那些年 IE 下踩过的坑

    1年过去了,换了一个不用兼容IE8一下浏览器的工作了! 1.:before,:after(伪类) 所有主流浏览器都支持 :before 选择器. 注释:对于 IE8 及更早版本中的 :before,必 ...

  9. 与PhotoZoom Classic 6相比,Classic 7新增了哪些?

    PhotoZoom Classic 6凭借屡获殊荣的S-Spline XL的专利技术,以清晰和锐利的方式调整照片大小非常简单快捷甚至可以放大和改善互联网上的照片. PhotoZoom Classic ...

  10. Kattis - iBoard

    iBoard After years of success with a single-button mouse, a well known computer company has decided ...