Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “我该怎么做?”;“听”;在WebView中,Android?_Java_Android_Uiwebview_Webview - Fatal编程技术网

Java “我该怎么做?”;“听”;在WebView中,Android?

Java “我该怎么做?”;“听”;在WebView中,Android?,java,android,uiwebview,webview,Java,Android,Uiwebview,Webview,这是一个非常简单的webview演示(我按照教程编写)。当用户加载我的应用程序时,这个webview会弹出,他可以在里面上网 我如何“倾听”一个事件 当URL包含“google.com”时 或者,当HTML包含“google”一词时 当用户使用我的webview浏览网页时,我想听听这些内容,然后在出现问题时调用一个函数。有一种视图方法似乎是很好的选择。你真的应该看看这个课程的文档 应该允许您在加载页面之前检查url public void onLoadResource (WebView vi

这是一个非常简单的webview演示(我按照教程编写)。当用户加载我的应用程序时,这个webview会弹出,他可以在里面上网

我如何“倾听”一个事件

  • 当URL包含“google.com”时
  • 或者,当HTML包含“google”一词时

当用户使用我的webview浏览网页时,我想听听这些内容,然后在出现问题时调用一个函数。

有一种视图方法似乎是很好的选择。你真的应该看看这个课程的文档

应该允许您在加载页面之前检查url

public void onLoadResource (WebView view, String url)

应该允许您搜索实际完成的加载内容。

要侦听google.com请求,您应该覆盖代码示例中的shouldOverrideUrlLoading,但您需要为这些请求提供替代操作,如下面的代码段中所示

public void onPageFinished (WebView view, String url)

shouldOverrideUrlLoading的文档花了我几次阅读才理解

如果希望当前WebView处理url,则无需调用WebView.loadUrl,只需返回false。如果你想让你的应用程序对特定的URL做一些完全不同的事情,那么做你需要的并返回true

我希望所有不是来自主机的URL都能由手机的浏览器应用程序而不是我的WebView来处理。以下是我的实现:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.contains("google.com")) {
        // Here you can do whatever you want
        view.loadUrl("http://example.com/");
        return true;
    }

    // The default action, open the URL in the same WebView
    view.loadUrl(url);
    return true;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.contains("google.com")) {
        // Here you can do whatever you want
        view.loadUrl("http://example.com/");
        return true;
    }

    // The default action, open the URL in the same WebView
    view.loadUrl(url);
    return true;
}
 @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
    boolean returnVal = false;
    if(url.startsWith(mUrlHost)) {
      //current Webview handles the URL
    } else {
      Toast.makeText(mActivity, "Launching Browser", Toast.LENGTH_SHORT).show();
      Uri uri = Uri.parse(url);
      Intent intent = new Intent(Intent.ACTION_VIEW, uri);
      mActivity.startActivity(intent);
      returnVal = true;
    }
    return returnVal;
  }