u012186949的专栏

我们在开发中常常会用到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}}

先知三日,富贵十年。

u012186949的专栏

相关文章:

你感兴趣的文章:

标签云: