iOS中UIWebView与其中网页的javascript的交互
swift代码:
import UIKit
class ViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var theWebView: UIWebView!
override func viewDidLoad() {
//加载本地html
let res = NSBundle.mainBundle().pathForResource("index",ofType:"html")
let url = NSURL(fileURLWithPath: res!);
let request = NSURLRequest(URL: url);
self.theWebView.loadRequest(request);
self.theWebView.delegate = self;
}
//让js可以调用swift
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
//判断是不是js在调用swift,如果是,则处理并返回false
if(request.URL!.scheme == "myschema"){
let host = request.URL!.host;
if(host == "go"){
let query = request.URL!.query!;
print(query);
let split = query.componentsSeparatedByString("=");
let text = split[1];
self.theWebView.stringByEvaluatingJavaScriptFromString("changeContent(\"" + text + "\")");
}
return false;
}else{
return true;
}
}
//swift调用js
@IBAction func btnClicked(sender: AnyObject) {
self.theWebView.stringByEvaluatingJavaScriptFromString("changeContent(\"123\")");
}
}
网页代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<span id="theSpan"></span>
<button onclick="doIt()">js调用swift</button>
<input type="text" id="t">
<script>
//让swift可以调用js
function changeContent(str){
document.getElementById('theSpan').innerHTML = str;
}
//js调用swift
function doIt(){
document.location.href = "myschema://go?a=" + document.getElementById("t").value;
}
</script>
</body>
</html>
iOS中UIWebView与其中网页的javascript的交互的更多相关文章
- iOS中UIWebView执行JS代码(UIWebView)
iOS中UIWebView执行JS代码(UIWebView) 有时候iOS开发过程中使用 UIWebView 经常需要加载网页,但是网页中有很多明显的标记让人一眼就能看出来是加载的网页,而我们又不想被 ...
- iOS中UIWebView使用JS交互
iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html & ...
- iOS中UIWebView使用JS交互 - 机智的新手
iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html & ...
- iOS中UIWebview中网页宽度自适应的问题
有的网页中会使用"<meta name="viewport" content="width=device-width, initial-scale=1.0 ...
- IOS中UIWebView执行javaScript脚本时注意点
1.webView之所以能够滚动,因为它内部有一个UIScrollView子控件 2.移除webView顶部和底部灰色的一层view * 遍历webView中scrollView内部的所有子控件 * ...
- iOS 使用UIWebView把oc代码和javascript相关联
首先请参看一篇文章,作者写的很明白,请参看原地址 http://blog.163.com/m_note/blog/static/208197045201293015844274/. 其实,oc和js的 ...
- iOS中 UIWebView加载网络数据 技术分享
直奔核心: #import "TechnologyDetailViewController.h" #define kScreenWidth [UIScreen mainScreen ...
- iOS 中UIWebView的cookie
有关cookie是什么,大家可以自行百度,本文我获得cookie的目的是得到一个userID. 下面的是代码. - (void)getUserIDFromCookie { NSHTTPCookieSt ...
- ios中UIWebview中加载本地文件
[super viewDidLoad]; webview=[[UIWebView alloc] initWithFrame:self.view.bounds]; [self.view addSubvi ...
随机推荐
- Watering Grass
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/E 题意: 给定一条草坪,草坪上有n个喷水装置.草坪长 ...
- 处理海量数据的高级排序之——归并排序(C++)
代码实现 ...
- zend studion实现自动换行
真是学一门语言不仅有学语言的阻碍,同时还有编写代码工具的障碍,zend studion的自动换行问题 zend studion默认的是不会自己换行,百度查找后找到了如下个方法: 实现: 菜单" ...
- Jquery广告浮动效果小案例
导入<script src="<%=path%>/html5/js/jquery.js"></script>文件 <SCRIPT type ...
- intellij idea 插件 ideaVim
像Eclipse一样,idea这个公认最好的javaIDE也有Vim插件. 安装方法 File>Settings>Plugins>Install JetBrains plugin.. ...
- 从jQuery中学习来的另一种继承方式(技巧)
遵从Js的原型链规则,利用js灵活的特性灵活地改造原型,可以实现各种创意地继承方式,昨天研究了jQuery,对作者实现继承的方式感到佩服,他对js原型和原型链的理解比较透彻,运用自如.这里给出jQue ...
- 上传读取Excel文件数据
/// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...
- github page 构建自己的页面
新建一个仓库.命名为:<你的账号>.github.io 然后上传一个index.html即可 打开浏览器输入:<你的账号>.github.io 即可访问
- XML真正强大的功能是来自其元素与封装的内容
创建文档类型声明 一般而言,XML声明放在文档顶部.在PHP中声明十分简单:只需实例化一个DOM文档类的对象并赋予它一个版本号.查看程序清单A: 程序清单 A <?php// create do ...
- 20145337《JAVA程序设计》第一周学习总结
# 20145337 <Java程序设计>第1周学习总结 ## 教材学习内容总结 第一章 -Java最早是Sun公司撰写Star7应用程序的程序语言 -根据应用领域不同,有Java SE. ...