IOS 笔记之 ios & javascript

这里把我另一个博客的文章搬过来,另一个博客暂时不用了。

Because of the limited API of the UIWebView class in the iOS, developers are often forced to use JavaScript in order to implement features which are not supported by the UIWebView class itself. The amount of JavaScript code that is needed can easily reach limits you can’t manage by using normal strings anymore. So you would like to write the JavaScript code in separate files, organized by task, like you would do this for Objective C classes. 

---from icab blog

就像icab所说的,ios并没有很好的api供我们去实现uiwebview上的页面交互,但是提供了接口让我们自己去用javascript语言自己实现页面的改变,具体怎么用呢,刚开始看起来可能不是很舒服,尤其像我这样的没有接触过java语言的,但是稍微熟悉一下js我们就可以做一些简单的应用了,下面结合代码总结一下:

首先,我们要做的是让编译器找到我们的js代码,所以,我们要创建js文件,在resource文件夹下建.js文件:jsFile1.js和jsFile2.js , 然后:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"jsFile1" ofType:@"js"];

    NSString *path2 = [[NSBundle mainBundle] pathForResource:@"jsFile2" ofType:@"js"];

    NSString *jsCode1 = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; 

    NSString *jsCode2 = [NSString stringWithContentsOfFile:path2 encoding:NSUTF8StringEncoding error:nil];

    NSString *js = [jsCode2 stringByAppendingString:jsCode1];

    [[self webview] stringByEvaluatingJavaScriptFromString:js];

    NSString *str = @"The Character you want to search";

    NSString *startSearch = [NSString stringWithFormat:@"MyApp_HighlightAllOccurencesOfString('%@')",str];

    [[self webview] stringByEvaluatingJavaScriptFromString:startSearch]; 


上面一段代码我们都干了什么呢,我们找到了我们创建的这两个文件,读出来放到了NSString里面,你会奇怪为什么我创建了两个js文件,因为我想通过这个告诉你,假如你创建了多个js文件,而js2文件中用到了js1中的方法怎么办?嗯,我们只需要把js1拼接到js2的前面就好了。

这是核心的一句:    [[self webview] stringByEvaluatingJavaScriptFromString:js];

不要疑惑[self webview],这是我的一个UIWebView的成员变量,我调用了里面的stringByEvaluatingJavaScriptFromString方法,这一句通知了此webview我们可以使用我们的创建的js代码了,剩下的事情就是我们去写自己的js代码,然后调用,就像我最后三句所写的一样,这三句实现了调用js代码里面写的MyApp_HighlightAllOccurencesOfString()方法。

至于怎么写js代码,怎样去用DOM提供给我们的方法去解析html,要考验我们的自己的js功底了,下面一个很好的例子,还是非常有助于理解的:

http://www.icab.de/blog/2010/01/12/search-and-highlight-text-in-uiwebview/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值