web与Navtive 交互—iOS

1. Native(Objective-C或Swift)调用Javascript方法

app调取h5的js方法通过webView的方法stringByEvaluatingJavaScriptFromString,该方法返回执行js方法的结果。

NSString*lableText=[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.xxx.sec.init.item%d.anchor",i]];
2. Javascript调用Native(Objective-C或Swift)方法

Javascript调用Native,并没有现成的API可以直接拿来用,而是需要通过webView的代理方法实现。UIWebView有个特性:在UIWebView内发起的所有网络请求,都可以通过delegate函数在Native层得到通知。我们就可以在UIWebView内发起一个自定义的网络请求,通常是这样的格式:wypic://image?url=http//:image…
其后也可以携带数据。
可以在h5页面写入这样的的格式js方法通过webView的代理函数响应js方法或获取数据

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{

 NSURL*url=[request URL];
    if ([[url scheme] isEqualToString:@"wypic"]) {//判断域名
        if ([[url host] isEqualToString:@"image"]) {
          //app的方法      
           [self showImage:string];
        }
        return NO;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值