網頁與原生應用之間互相跳轉


現在的移動應用中,常常需要在應用中展示一個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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM