Java “我该怎么做?”;“听”;在WebView中,Android?
这是一个非常简单的webview演示(我按照教程编写)。当用户加载我的应用程序时,这个webview会弹出,他可以在里面上网 我如何“倾听”一个事件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
- 当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;
}