• 网页与原生应用之间互相跳转


    现在的移动应用中,常常需要在应用中展示一个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

  • 相关阅读:
    C++之Static与Const
    LInux主机与虚拟机网络链接
    C#数据类型与数据类型转化
    C#网编Console(二)
    C#网编Winform(三)
    C#网编基础类与API(一)
    C实现CPU大小端判断
    QT程序图标设置
    四、初识Socket套接字API
    C++之继承(二)
  • 原文地址:https://www.cnblogs.com/maomishen/p/4718793.html
Copyright © 2020-2023  润新知