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 ...
随机推荐
- ps一般常用的快捷键
jpg 不支持透明和半透明 :网页中的大图,高清图(体积大) gif 支持透明 不支持半透明 :网页中的小图标(动画图片)png8 支持透明 不支持半透明 :网页中的小图标png24 支持透明 支持半 ...
- (一)学习JavaScript之setTimeout方法
参考:http://www.w3school.com.cn/jsref/met_win_settimeout.asp HTML DOM Window 对象 定义和用法 setTimeout() 方法用 ...
- CSS和SVG中的剪切——clip-path属性和<clipPath>元素
剪切是什么 剪切是一个图形化操作,你可以部分或者完全隐藏一个元素.被剪切的元素可以是一个容器也可以是一个图像元素.元素的哪些部分显示或隐藏是由剪切的路径来决定的. 剪切路径定义了一个区域,在这个区域内 ...
- MVC的EF编辑,不用查询直接修改
EF中会为每个 管理的 实体对象 创建一个代理包装类对象,其中会跟踪 实体对象 的状态和每个属性的状态: 一.通常使用EF更新的方式,先查询出要修改的数据,然后再修改新的值:实体对象被修改的属性 在 ...
- JSON--List集合转换成JSON对象
转自:http://www.cnblogs.com/xmaomao/p/3184542.html 1. 简单的手动放置 键值对 到JSONObject,然后在put到JSONArray对象里 List ...
- alibaba笔试2
11. 12.C 13.C 14.C 关联:http://www.codingnow.com/2000/download/lua_manual.html 15.A
- Selenium webdriver 之select 控件封装,解决onchange问题
使用webdriver的时候,select 控件经常会绑定onchange 事件,在selenium2.09 之前click 方法对onchange 事件有bug,2.09 以后修复了,但是根据经验也 ...
- 浅析ado.net获取数据库元数据信息 DeriveParameters
写这个文章源于早先对ADO.Net获取数据库元数据上的认识,去年我在阅读ADO.Net Core Reference的时候曾经注意过DataSet的FillSchema的这个方法.这方面,在我之前的随 ...
- 基于Ubuntu 15.04 LTS编译Android5.1.0源代码 (转)
原文链接:http://blog.csdn.net/yuxiangyunei/article/details/45365235 环境: ubuntu:ubuntu-15.04-desktop-am ...
- SMG12232ZK标准字符点阵型液晶显示模块的演示程序[C51编程语言][MCS51并行接口方式]
//SMG12232ZK标准字符点阵型液晶显示模块的演示程序[C51编程语言][MCS51并行接口方式] //应用产品: SMG12232ZK标准中文字符点阵型液晶显示模块 // 本演示程序适用于SM ...