WebView与JS交互问题重现

希望广大网友转载此文章,里面重现了一个iOS交互问题,希望看到的大神帮忙解惑,不胜感激;

公司这几天一直在搞iOS客户端与JS的交互,有一个问题一直搞不明白,在此重现;

首先是通过截获Html5页面的点击事件,事件截获后我们要通过
[webViewstringByEvaluatingJavaScriptFromString:@"alert('test');"];来弹出一个JS弹出框来测试截获事件的成功;
然后普通这样的情况下是没有问题的,然而问题并不是在这里;

我们截获某按钮,比方说该按键是用来弹出一个iOS系统的ActionSheet,在这里我们用iOS8中的UIAlertController来解决,
UIAlertController* choose_vc = [UIAlertControlleralertControllerWithTitle :nil message:nilpreferredStyle:UIAlertControllerStyleAc tionSheet];
[choose addAction:[UIAlertAction actionWithTitle:@"测试"style:UIAlertActionStyleDefaul t handler:^(UIAlertAction *action){
        //问题出现在这里,同样的我们在action的回调方法中使用上述弹出测试框
        [webViewstringByEvaluatingJavaScriptFromString:@"alert('test');"];
}];
那么这里问题来了,框体如我们所愿的弹出来了,可是我们发现弹出后的框体不能确定了,整个界面完全停滞,无法再进行操作;
于是我们又进行了处理,将上述回调方法中的弹出方法写在用单线程处理后的方法中,如下,
[weak_selfperformSelector:@selector(evaluateJavaScrpt:) withObject:scriptafterDelay:0.0];
- (void)evaluateJavaScrpt:(NSString*)script
{
      [WebViewstringByEvaluatingJavaSc riptFromString:@"alert('test')!"];
}
问题解决了,然而这却让我陷入了思考,经查证未果,现记在这里,希望以后会碰到,有机会再做解决,当前理解可能是因为某个线程的runloop停止了;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值