現在的移動應用中,常常需要在應用中展示一個Web頁面,通常Web頁面也需要再轉回原生的應用頁面,從而達到更多的頁面復用。
這里介紹一種方式,通過提前截獲要跳轉的A標簽,來判斷是否需要跳轉。
下面是方法:
Android:
1 mWebView.getSettings().setDomStorageEnabled(true); 2 mWebView.getSettings().setDatabaseEnabled(true); 3 mWebView.getSettings().setJavaScriptEnabled(true); 4 mWebView.loadUrl(url); 5 mWebView.setWebViewClient(new WebViewClient() { 6 @Override 7 public boolean shouldOverrideUrlLoading(WebView view, String url) { 8 //這里添加判斷代碼,根據url來判斷是否需要跳轉到原生頁面或是繼續跳轉到網頁 9 // view.loadUrl(url); 10 return true;// 返回true來結束這次監聽,不需要再次廣播 11 } 12 });
iOS:
UIWebView所在的Controller需要實現UIWebViewDelegate
下面是代碼:
1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 self.theWebView.delegate = self; // 注意:這里需要設置委托 4 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; 5 NSURLRequest *request = [NSURLRequest requestWithURL:url]; 6 [self.theWebView loadRequest:request]; 7 } 8 9 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 10 //判斷是否是單擊 11 if (navigationType == UIWebViewNavigationTypeLinkClicked) 12 { 13 NSURL *url = [request URL]; 14 // 這里加入判斷語句,判斷網頁url,是否需要繼續跳轉,或是使用原生頁面 15 return NO; // 返回NO,結束網頁跳轉,如果要繼續跳轉,需要返回YES 16 } 17 return YES; // 繼續網頁跳轉 18 }
本文已在版權印備案,如需轉載請在版權印獲取授權。
版權印為您的作品印上版權36735100