永发信息网

ios里面怎样监听js的事件

答案:2  悬赏:70  手机版
解决时间 2021-03-27 04:26
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.
}
全部回答
IOS可以监听url的变化。
所以,js事件发生的时候,改变url的变化,从而IOS监听到了URL的变化,从而知道发生了什么js事件(预先定义好一套规则)
可能还有其他方式,我只是给个思路。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求教:雪拉瑞太不听话,如何教导?
本人以考过CISA考试 但还缺少2年工作经验 获
我正在考驾照,过了科目一,科目二一直没有上
征信报告这样显示,我想知道是不是2018年六月
麻烦发几张王源的最帅和最萌的照片。
2012四川高考各个名牌大学录取分数线 清华 北
为什么我每次申请招商的信用卡都是被拒绝
推荐一台适开放式厨房的油烟机
蓄电池自行放电的原因是什么
求加藤惠壁纸
公务员的公费是什么
前几年的一部日剧,实在想不起名字了,讲述的
怎样提高上传速度?
喜欢艾灸,可是艾烟太大怎么办
LUNA Online 主题曲 叫什么名字 ?
推荐资讯
电炉子如何接线
谢霆锋有首歌叫巴斯光年,那中文版的叫什么来
徐志摩的一首诗,讲的类似找寻伴侣一类的诗句
每一百平方米楼面钢筋需多重;民用楼面一般用
单选题世界人民反法西斯战争取得胜利的可靠保
阿姆是同性恋么
索尼xperixz手机显示屏多少钱回收
一毛大还是一分大
达门罗特的巢穴在哪里?就是鲁高因的第一个任
来了张宝利中有一集。故事情节是这样的首先是
fast food和 junk food的区别
胎记是什么,天生就有吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?