ios里面怎样监听js的事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios里面怎样监听js的事件相关的知识,希望对你有一定的参考价值。
在ios开发之Objective-C与javascript交互操作 中我们可以通过stringByEvaluatingJavaScriptFromString 去实现在obj-C中获取到相关节点属性,添加javascript代码等功能。但是我们如何监听到javascript的响应事件呢。在MAC OS中有效的API去实现,但iPhone没有,但我们有一个技巧途径:大概思路是:在JavaScript事件响应时,通过设置document.location,这会引发webview的一个delegate方法,从而实现发送通知的效果,即达到监听的目的。
1、在javascript与webView之间定一个协议约定:
myapp:myfunction:myparam1:myparam2
2、在javascript中添加代码:
document.location = "myapp:" + "myfunction:" + param1 + ":" + param2;
3、在webView的delegate方法webView:shouldStartLoadWithRequest:navigationType: 添加
- (BOOL)webView:(UIWebView *)webView2
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType
NSString *requestString = [[request URL] absoluteString];
NSArray *components = [requestString componentsSeparatedByString:@":"];
if ([components count] > 1 &&
[(NSString *)[components objectAtIndex:0] isEqualToString:@"myapp"])
if([(NSString *)[components objectAtIndex:1] isEqualToString:@"myfunction"])
NSLog([components objectAtIndex:2]); // param1
NSLog([components objectAtIndex:3]); // param2
// Call your method in Objective-C method using the above...
return NO;
return YES; // Return YES to make sure regular navigation works as expected.
参考技术A IOS可以监听url的变化。
所以,js事件发生的时候,改变url的变化,从而IOS监听到了URL的变化,从而知道发生了什么js事件(预先定义好一套规则)
可能还有其他方式,我只是给个思路。
关于EXTJS的onResize事件监听问题, 我设置了一个panel,里面对它进行onResize事件监听怎么写,
最好有具体代码,
还设有就是这个监听事件的函数中的每个参数的意思是什么,高手赐教
不胜感激
on( String eventName, Function handler, [Object scope], [Object options] ) : void
这是panel的事件监听函数,第一个参数是事件名称,resize是一个事件,所以写'resize',第二个是处理函数,在这里传入参数。第三个是函数的作用域,一般无特殊情况写this即可。
具体就是this.on('resize',handlerFn:function(this,adjx,adjy,rawx,rawy)
//这里写你的操作即可,参数是对应resize事件里的。
,this);
更多详细,请参考extjs API 参考技术A 你在百度搜 四湖论坛 希望对你有帮助
以上是关于ios里面怎样监听js的事件的主要内容,如果未能解决你的问题,请参考以下文章