【问题标题】:Android Webview shouldOverrideUrlLoading methodAndroid Webview shouldOverrideUrlLoading 方法
【发布时间】:2013-05-16 03:55:42
【问题描述】:

shouldOverrideUrlLoading 方法何时调用?

webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {


    }
});
  1. 是否在初始加载 url 时调用?例如webView.loadUrl( "file:///android_asset/html/index.html");
  2. webview 的 URL 每次变化时都会调用吗?

有参考吗?我没有找到一个。谢谢

【问题讨论】:

  • this answer。我也查过了,shouldOverrideUrlLoading在使用loadUrl时没有被调用

标签: android android-webview uri android-assets


【解决方案1】:
  1. 但是,当 WebView 加载与用户请求的 URL 不同的 URL 时,会调用它。

  2. 调用loadUrl() 也会触发shouldOverrideUrlLoading() 方法。 (仅在即将加载新 url 时。)

当一个新的 url 即将加载到当前的 WebView 中时,让宿主应用程序有机会接管控制权。 如果 没有提供WebViewClient,默认WebView会询问Activity 经理为 url 选择正确的处理程序。如果 WebViewClient 是 提供,返回 true 表示主机应用程序处理 url, 而 return false 表示当前 WebView 处理 url。

参考:public boolean shouldOverrideUrlLoading (WebView view, String url)

【讨论】:

  • 不,只是调用loadUrl() 不会触发shouldOverrideUrlLoading()。仅在即将加载新 url 时。
  • @HenriquedeSousa 嘿,感谢您宝贵的反对票。这将帮助我再次学习这个概念:)。请添加您的答案,以便对其他人和我都有帮助。
  • 如果您编辑您的消息,以免人们被您的回答误导并浪费宝贵的时间,我很乐意再次投票 :)
  • @HenriquedeSousa 用您的评论更新了答案。
  • @PankajKumar loadUrl 不会触发 shouldOverrideUrlLoading。您能否详细说明第二点?
【解决方案2】:

以下是您两个问题的答案:

根据document,它将管理每次新 URL 即将加载到当前 WebView 中。

【讨论】:

  • webview中加载的初始url怎么样?
  • @JRGalia 以上答案适用于这两个问题。
猜你喜欢
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
相关资源
最近更新 更多