2012-03-12 47 views
4

我正在使用shouldOverrideUrlLoading方法来为多个客户端个性化的应用程序。每个客户端都有自己的网页,希望加载到网页视图中。我的问题是这样的:该应用完美适用于客户端A和他的网页,但不适用于客户端B的网页(与客户端A无关)。正如我测试过的,不同的是,在客户端B的情况下,在加载的内容中访问webview的链接,shoulOverrideUrlLoading不起作用(永远不会被调用),并且对于客户端的网页完美运行。另一件事是客户的B网页不能仅在一些Android版本上工作,如2.1或2.3.6,但它在2.3.3,2.3.5,4.0.2或4.0.3上正常工作。shouldOverrideUrlLoading仅针对某些网页调用

所以这有点奇怪。如果你碰巧知道什么,请帮忙!谢谢!:)

编辑:我注意到,当网页不通过JavaScript加载请求的链接时它不会调用shouldOverrideLoading,并且它在JavaScript不使用时工作!但是当我设置webview.setJavaScriptEnabled(false)它的作品!我真的需要javascript来启用我的应用程序,导致网页通常使用JavaScript的其他东西,除了加载,所以我不能禁用它,只是因为shouldOverrideUrlLoading不会被调用!

编辑2:更确切:

这一个工程和shouldOverrideUrlLoading被称为:

<p onclick="location.href='linkHere'"> 
     NewLink 
     <span class="icon-arrow"></span> 
</p> 

这一个不工作,shouldOverrideUrlLoading不会被调用:

<a class="link-inherit" href="linkHere"> 
     NewLink 
     <span class="icon-arrow"></span> 
</a> 
+0

也许帮助http://stackoverflow.com/questions/6738328/shouldoverrideurlloading-in-webview-for-android-not-running – 2012-03-12 15:48:18

+0

是啊..我看到了那篇文章。不完全是我的情况。感谢无论如何:) – user347187 2012-03-13 08:35:00

+0

我更新了我的答案!:) – user347187 2012-03-13 08:42:21

回答

3

解决方案shouldOverrideUrlLoading不叫

public void onPageStarted(WebView view, String url, Bitmap favicon) { 

     if (url.contains("success")) { 
      Intent intent = new Intent(WebviewActivity.this, OrderConfirmActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
     } else { 
      super.onPageStarted(view, url, favicon); 
     } 
    } 
+1

???这对任何人都适用吗?我没有看到... Android是否附加了“成功”后缀或什么?我在我的onPageStarted中打印了url参数,至少对我来说不是这种情况。 – acrespo 2016-01-29 14:59:45

相关问题