有時候iOS開發過程當中使用 UIWebView 常常須要加載網頁,可是網頁中有不少明顯的標記讓人一眼就能看出來是加載的網頁,而咱們又不想被人卡出來。css
如網頁中的這個導航html
一般咱們不須要WebView中的 導航欄,也不須要裏面的返回上一級的交互。。nginx
對WebView經常使用的另一種功能就是對某個點擊添加對用function實現JS調用OC的交互功能。web
下面一一介紹:canvas
OC調用JS一般是,在webView加載完成後調用,直接實現WebView代理方法ruby
- (void)webViewDidFinishLoad:(UIWebView *)webView { // webView // 執行JS代碼實現--這裏移除頭部,只是進來的時候移除一次, NSString *jsCode = @"var headerElement = document.getElementsByTagName('header')[0];" "headerElement.parentNode.removeChild(headerElement);"; [webView stringByEvaluatingJavaScriptFromString:jsCode]; }
此種用法一般是WebView中某按鈕點擊要進入下一級頁面或其餘操做。此時須要實現兩個WebView的代理方法配合實現。markdown
- (void)webViewDidFinishLoad:(UIWebView *)webView { // webView NSString *exeCode = //找到對應的元素 @"var figureElement = document.getElementsByTagName('div')[0];" // "var imgElement = figureElement.children[0];" //添加相應事件(這裏是點擊事件) "figureElement.onclick = function(){window.location.href = 'http://www.baidu.com'};"; [webView stringByEvaluatingJavaScriptFromString:exeCode]; self.request = webView.request; } - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if ([request.URL.absoluteString isEqualToString:@"http://www.baidu.com/"]) { UIAlertView *a = [[UIAlertView alloc] initWithTitle:@"提示" message:@"政策緣由,請移步網站投注" delegate:self cancelButtonTitle:@"好的" otherButtonTitles:nil, nil]; [a show]; return NO; } return YES; }