【iOS】Objective-C与JavaScript的交互
2015-09-14 11:27
483 查看
本文转载自:/article/4667197.html
其他参考:/article/1513782.html
UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。
1.基本交互
2.stringByEvaluatingJavaScriptFromString
使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的页面加载完成之后去调用。我们在界面上拖放一个UIWebView控件。在Load中将google
mobile加载到这个控件中,代码如下:
在webViewDidFinishLoad方法中就可以通过javascript操作界面元素
1)获取当前页面的url
2)获取页面title
3)
修改界面元素的值
4)表单提交
5)插入JS代码
上面的功能我们可以封装到一个js函数中,将这个函数插入到页面上执行,代码如下:
看上面的代码:
a、首先通过js创建一个script的标签,type为'text/javascript'。
b、然后在这个标签中插入一段字符串,这段字符串就是一个函数:myFunction,这个函数实现google自动搜索关键字的功能。
c、然后使用stringByEvaluatingJavaScriptFromString执行myFunction函数。
3.NSString 和 NSURL的相互转换
其他参考:/article/1513782.html
UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。
1.基本交互
[webView stringByEvaluatingJavaScriptFromString:@"alert('done')"];
2.stringByEvaluatingJavaScriptFromString
使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的页面加载完成之后去调用。我们在界面上拖放一个UIWebView控件。在Load中将google
mobile加载到这个控件中,代码如下:
- (void)viewDidLoad { [super viewDidLoad]; webview.backgroundColor = [UIColor clearColor]; webview.scalesPageToFit =YES; webview.delegate =self; NSURL *url =[[NSURL alloc] initWithString:@"http://www.google.com.hk/m?gl=CN&hl=zh_CN&source=ihp"]; NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; [webview loadRequest:request]; }
在webViewDidFinishLoad方法中就可以通过javascript操作界面元素
1)获取当前页面的url
- (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"]; }
2)获取页面title
- (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"]; NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"]; }
3)
修改界面元素的值
NSString *js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='朱祁林';"];
4)表单提交
NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "];
5)插入JS代码
上面的功能我们可以封装到一个js函数中,将这个函数插入到页面上执行,代码如下:
[webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');" "script.type = 'text/javascript';" "script.text = \"function myFunction() { " "var field = document.getElementsByName('q')[0];" "field.value='朱祁林';" "document.forms[0].submit();" "}\";" "document.getElementsByTagName('head')[0].appendChild(script);"]; [webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];
看上面的代码:
a、首先通过js创建一个script的标签,type为'text/javascript'。
b、然后在这个标签中插入一段字符串,这段字符串就是一个函数:myFunction,这个函数实现google自动搜索关键字的功能。
c、然后使用stringByEvaluatingJavaScriptFromString执行myFunction函数。
3.NSString 和 NSURL的相互转换
NSString *str = @""; NSURL *URL = [NSURL URLWithString:str]; //string>url NSString *str1 = [URL absoluteString]; //url>string
相关文章推荐
- Objective-C 【NSMutableArray】
- 黑马程序员——Objective--C基础笔记之内存管理(一)
- ***-[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from ob
- SQL sysobjects 表 详解
- Objective-C学习-KVC(键值编码)和KVO(键值观察)
- 【IOS 开发学习总结-OC-7.6-★】objective-c ——块(Block)
- objective-C 中两种实现动画的方法(转)
- Objective-C - category学习笔记
- Objective-C - protocol学习笔记
- 【IOS 开发学习总结-OC-7.5】objective-c 的c语言特性——结构体
- Objective-C 【NSMutableString】
- Objective-C 【NSArray 的基本使用&常见方法&简写形式】
- Objective-C学习-数组排序问题
- Objective-C - OC访问器学习笔记
- Object-API-NSLog
- 'dict' object has no attribute 'has_key'
- 【IOS 开发学习总结-OC-7.4】objective-c与c语言的预处理
- java学习之Object类常用方法
- 基础学习day08---多态、简单工厂、Object类equals和toString
- 黑马程序员——Objective--C笔记之协议