iOS web与js的简单交互
我们在封装网页的时候经常会遇到需要往网页里面的控件添加数据,但是怎么添加又成了难点。本人最近在开发的时候就遇到这样的事,解决之后,来和大家分享一下。
//以必应网站为例
[web loadRequest:
[NSURLRequestrequestWithURL:
[NSURL URLWithString:@"http://www.bing.com/?FORM=Z9FD1"]]];
以下就是主要代码,只有几句
//获取当前页面的title
NSString *title =
[webView
stringByEvaluatingJavaScriptFromString:
@"document.title"];
NSLog(@"title====%@",title);
//获取当前URL
NSString *URL =
[webView
stringByEvaluatingJavaScriptFromString: @"document.location.href"];
NSLog(@"URL===%@",URL);
//得到网页代码
NSString *html =
[webView
stringByEvaluatingJavaScriptFromString:
@"document.documentElement.innerHTML" ];
NSLog(@"html====%@",html);
//拼接字符串 根据网页name找到控价并赋值
NSString *str = @"随_的简书";
NSString *JSStr =
[NSString stringWithFormat:
@"document.getElementsByName('q')[0].value = ('%@');",str];
[webView stringByEvaluatingJavaScriptFromString: JSStr];
以下是全部代码,commit+c commit+v可以直接运行
@interface ViewController ()
@property (weak, nonatomic) UIWebView *web;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIWebView *web =
[[UIWebView alloc] initWithFrame:
[UIScreen mainScreen].bounds];
UIButton *back =
[[UIButton alloc] initWithFrame:CGRectMake
(0, 0, self.view.frame.size.width,self.view.frame.size.width / 7.5)];
[back setBackgroundColor: [UIColor orangeColor]];
[back setTitle:@"back" forState:UIControlStateNormal];
[back addTarget:self
action: @selector(back)
forControlEvents:UIControlEventTouchUpInside];
//以必应为例
[web loadRequest:
[NSURLRequest requestWithURL:
[NSURL URLWithString:
@"http://www.bing.com/?FORM=Z9FD1"]]];
web.delegate = self;
web.scalesPageToFit =YES;
web.scrollView.delegate = self;
self.web = web;
[self.view addSubview:web];
[self.view addSubview:back];
}
#pragma mark ---Delegate
-(void) webViewDidStartLoad:
(UIWebView *)webView{
NSLog(@"开始加载---") ;
}
- (void) webViewDidFinishLoad:
(UIWebView *)webView {
NSLog(@"加载完成---");
//获取当前页面的title
NSString *title =
[webView
stringByEvaluatingJavaScriptFromString:
@"document.title"];
NSLog(@"title====%@",title);
//获取当前URL
NSString *URL =
[webView
stringByEvaluatingJavaScriptFromString:
@"document.location.href"];
NSLog(@"URL===%@",URL);
//得到网页代码
NSString *html =
[webView
stringByEvaluatingJavaScriptFromString:
@"document.documentElement.innerHTML" ];
NSLog(@"html====%@",html);
//拼接字符串 根据网页name找到控价并赋值
NSString *str = @"随_的简书";
NSString *JSStr =
[NSString stringWithFormat:
@"document.getElementsByName('q')[0].value = ('%@');",str];
[webView stringByEvaluatingJavaScriptFromString:JSStr];
}
- (void) webView:
(UIWebView *)webView
didFailLoadWithError:(NSError *)error {
NSLog(@"加载失败===%@",error);
}
//当网页位置为顶部 不允许继续下拉
- (void) scrollViewDidScroll:
(UIScrollView *)scrollView {
if (self.web.frame.origin.y == 0) {
self.web.scrollView.bounces = NO;
return;
}
}
//webView的每次页面跳转都会执行,在这里可以得到想要的数据
- (BOOL)webView:
(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"页面跳转");
return YES;
}
//返回
- (void) back {
[self.web goBack];
}
iOS web与js的简单交互的更多相关文章
- IOS UIWebView与js的简单交互swift3版
在开发过程中,我们可能遇到ios代码与js交互的情况,本人第一次使用遇到了很多坑,这里纪录一下,方便自己,也方便需要的人. 1.第一步先建一个接口(协议)并继承JSExport 这里实现两个方法提供给 ...
- iOS 使用node js 搭建简单的本地服务器
一.前提:基于iOS 项目 调用,使用了第三方框架NodeMobile.技术说明关键是 应用生命整个周期只能在应用启动时候开辟的一个线程里申请 一个 node js 资源.如果终止了运行,重启是不支 ...
- iOS中web与Js的交互
问题 感觉到uni-app框架有pit,公司强推该框架的小哥识趣的闭嘴,考虑到全盘替换周期跟成本挺大,基于uni-app能打包成H5,采用webview+js的原生方式集成 基本结构:原生壳 + we ...
- 转载 【iOS开发】网页JS与OC交互(JavaScriptCore) OC ----->JS
目标 本文介绍利用苹果在iOS7时发布的JavaScriptCore.framework框架进行js与OC的交互.我们想要达到的目标是: OC调用网页上的js方法 网页js调用APP中的OC方法 ...
- 简单web网页与SSM后台交互
简单web网页与SSM后台交互 情况说明 如今,已经搭建好SSM后台开发环境,并且可以经由postman工具测试成功.现在尝试写出web前端网页,通过实现简单的提交.注册.查询功能来加深对前后端数据传 ...
- 用node.js实现简单的web服务器
node.js实现web服务器还是比较简单的,我了解node.js是从<node入门>开始的,如果你不了解node.js也可以看看! 我根据那书一步一步的练习完了,也的确大概了解了node ...
- iOS OC与JS的交互(JavaScriptCore实现)
本文包括JS调用OC方法并传值,OC调用JS方法并传值 本来想把html放进服务器里面,然后访问,但是觉得如果html在本地加载更有助于理解,特把html放进项目里 HTML代码 <!DOCTY ...
- JS与OC交互--简单使用
直接上代码 .m文件 #import "ViewController.h" @interface ViewController () <UIWebViewDelegate&g ...
- HTML(.js) – 最简单的方式操作 DOM 的 JS 库
HTML(.js) 是一个轻量的(压缩后~2kb) JavaScript 库,简化了与 DOM 交互的方法. 这个 JavaScript 库的方法可读性很好,并具有搜索和遍历 DOM 的方法.相比 j ...
随机推荐
- Vim常用配置(~/.vimrc)(转载)
原文地址:http://www.2cto.com/os/201309/246271.html " This must be first, beacuse it changes other o ...
- 别做操之过急的”无效将军”,做实实在在的”日拱一卒” zz
别做操之过急的”无效将军”,做实实在在的”日拱一卒” 前天在网上看到一句话很不错,拿来和大家分享,同时用我的“大叔”三观来解读这句话. 这句话是:“我们不需要操之过急的”无效将军”,我们需要实实在在的 ...
- java语言实现简单接口工具--粗简版
2016注定是变化的一年,忙碌.网红.项目融资失败,现在有点时间整整帖子~~ 目标: 提高工作效率与质量,能支持平台全量接口回归测试与迭代测试也要满足单一接口联调测试. 使用人员: 测试,开发 工具包 ...
- python 网络编程(五)---DNS域名系统
1.域名系统定义 DNS计算机域名系统由域名服务器和域名解析器组成.通常输入的是网址就是一个域名. 2.域名查询 查询方式包括: 1)正向查询:由域名查找对应的IP(如:www.baidu.com—& ...
- python bisect模块
转发:http://www.cnblogs.com/skydesign/archive/2011/09/02/2163592.html 先看看模块的结构: 前面五个属性大家感兴趣可以打出来看看数值,这 ...
- NOIP2010 引水入城
4引水入城 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个 ...
- python打包成exe(py2exe)
对比了几个打包工具,发现py2exe更好用一点,一个命令就可以. 1.获取 http://prdownloads.sourceforge.net/py2exe 下载python版本对应的.直接下载然后 ...
- nodejs学习:sails框架的学习
上周通过搭建CMS系统接触到了sails框架,知道一些ORM的概念.这周开始深入后台数据交互,发现twenty框架的数据结构在sails上又设计了一番(比如node.category),不得不说师哥就 ...
- 让浏览器进行跨域访问, 开发阶段需要跨域访问的测试方案 chrome的快捷方式里面 加 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --args --disable-web-security
Chrome浏览器 的快捷方式里加一个 命令可以使浏览器进行跨域访问 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe ...
- A Tour of Go Methods with pointer receivers
Methods can be associated with a named type or a pointer to a named type. We just saw two Abs method ...