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 ...
随机推荐
- HTML DOM 教程Part1
2015-05-08 摘自W3C School HTML DOM HTML DOM 定义了访问和操作HTML文档的标准方法.HTML DOM 把 HTML 文档呈现为带有元素.属性和文本的树结构(节点 ...
- Android视图SurfaceView的实现原理分析
http://blog.csdn.net/luoshengyang/article/details/8661317
- 使用appium做安卓手机web自动化测试 真机demo
一:appium相关环境搭建过程略. 二:连接真机: 1.手机(andriod 4.2.2)连接电脑,打开USB调试模式. 2.运行cmd 输入 adb devices -l 查看UDID,如图: 3 ...
- POJ3264 Balanced Lineup 线段树区间最大值 最小值
Q个数 问区间最大值-区间最小值 // #pragma comment(linker, "/STACK:1024000000,1024000000") #include <i ...
- HW6.23
public class Solution { public static void main(String[] args) { boolean[] box = new boolean[101]; f ...
- Kooboo中如何切换数据库(注意:如果切换数据库,需要Kooboo中没有一个website 否则会报错数据库中没有表之类的)
Setup database provider 来自Kooboo document Kooboo CMS can almost support all the types of database, ...
- centos修改时区,设置时间
在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况.如果没有安装,而你使用的是 CentOS系统 那使用命令 yum insta ...
- spring3.0的BeanFactory上下文context获取不到bean
开门见山,背景: 系统初始化的时候扫包实例化bean,然后一个工具类实现ServletContextAware接口,拿到servletContext之后: WebApplicationContextU ...
- 教程-Supports判断接口(Instance)是否支持
function TCommandEnabledController.GetCommandVisible(const ACommandName: string): Boolean; var I: In ...
- hdoj 2045 不容易系列之(3)—— LELE的RPG难题
不容易系列之(3)—— LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...