app和WebView的交互

我们在开发中常常会用到UIWebView,当代码中在嵌入h5时,我们的app内部可能会需要和WebView进行交,比如web前端工程师写的js中某个分享功能,当他点击h5中某个分享按钮,我们需要调用我们app内部的分享功能。比如弹出分享渠道界面,进行分享。这个时候可以和前端工程师商量加载一个自定义的url。比如:native://share?title=xx&link=xxx.我们通过解析这个url获取到需要参数内容。UIWebViewDelegate中通过下面的方法

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = request.URL;
    NSLog(@"webView 的url:%@",url);
    if([[url scheme] isEqualToString:@"native"])
    {
        return [self handleNativeUrl:url];
        
    }
    
    if (![_webview canGoBack])
    {
        if (self.isLoadMessages)
        {
            self.navigationItem.leftBarButtonItem=nil;
        }
    }
    
    
    
    
    return YES;
}

获取到加载的url,从而来达到webView与app的交互。


UIWebView还有一个强大之处就是可以直接调用JS函数。

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
这个方法可以直接去调用js的方法,并返回调用的结果。比如获取到网页的title。

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
  //  NSLog(@"标题:%@", [webView stringByEvaluatingJavaScriptFromString:@"document.title"]);
    if (self.isLoadMessages) //只有加载资讯的时候
    {
        if ([webView canGoBack]) //可以返回的时候
        {
            [self setNavigationBar];//添加假的导航条目
        }
        
        self.navigationItem.title=[webView stringByEvaluatingJavaScriptFromString:@"document.title"]; //调用js,获取title
    }

}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值