zoukankan      html  css  js  c++  java
  • 网页与原生应用之间互相跳转

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

  • 相关阅读:
    cocos2d-x 团队碰面有感
    2014年3月份 月会
    2014年特种兵训练营感想
    web 的简单框架
    【实用小技巧】virtual box 虚拟机复制
    flash的Socket通讯沙箱和安全策略问题
    Codeforces Round #237 (Div. 2)
    类的静态常量数组初始化
    关于自己的成长计划
    Android
  • 原文地址:https://www.cnblogs.com/maomishen/p/4718793.html
Copyright © 2011-2022 走看看