Java Android在webview中创建带有链接的toast
当我在webview中单击一个url而不转到url时,如何查看toast,只显示toast消息Java Android在webview中创建带有链接的toast,java,android,webview,Java,Android,Webview,当我在webview中单击一个url而不转到url时,如何查看toast,只显示toast消息 wv = (WebView) findViewById(R.id.wV); wv.loadData("<a href=\"#_ftn0\">[0]</a>", "text/html", "UTF-8"); if(OnClickedUrl == "#_ftn0") Toast.makeText(getApplicationContext(), OnClickedUrl, Toa
wv = (WebView) findViewById(R.id.wV);
wv.loadData("<a href=\"#_ftn0\">[0]</a>", "text/html", "UTF-8");
if(OnClickedUrl == "#_ftn0")
Toast.makeText(getApplicationContext(), OnClickedUrl, Toast.LENGTH_LONG).show();
wv=(WebView)findviewbyd(R.id.wv);
wv.loadData(“,”text/html“,”UTF-8“);
如果(OnClickedUrl==“#u ftn0”)
Toast.makeText(getApplicationContext(),OnClickedUrl,Toast.LENGTH_LONG).show();
您可以创建一个shouldOverrideUrlLoading事件(请参阅链接以获取API参考),并将代码放在方法中。但是,您需要指定覆盖加载的url。如果要覆盖所有URL,只需删除If
语句
wv.setWebViewClient( new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//Make sure the url to override loading is the correct one
if (url.contains("www.xxx.com")) {
return true;
}
return false;
}
@Override
public void onLoadResource(WebView view, String url){
//Make sure the url to override loading is the correct one
if (url.contains("www.xxx.com")) {
//create toast message here
}
}
});
您应该覆盖url加载,如下所示:
wv.loadData("<a href=\"http://www.example.com/#_ftn0\">[0]</a>", "text/html", "UTF-8");
wv.setWebViewClient(new MyWebViewClient());
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Toast.makeText(getApplicationContext(), url, Toast.LENGTH_LONG).show();
if(url.equal(urlyouclicked)){//here you compare the url you click
Toast.makeText(getApplicationContext(), OnClickedUrl, Toast.LENGTH_LONG).show();
}
return true;
}
}
wv.loadData(“,“text/html”,“UTF-8”);
setWebViewClient(新的MyWebViewClient());
公共类MyWebViewClient扩展了WebViewClient{
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
Toast.makeText(getApplicationContext(),url,Toast.LENGTH_LONG.show();
如果(url.equal(urlyouclicked)){//这里比较您单击的url
Toast.makeText(getApplicationContext(),OnClickedUrl,Toast.LENGTH_LONG).show();
}
返回true;
}
}
除覆盖外,还应覆盖url。加载url时应匹配以下格式:“://”,否则它将不起作用。因此,您可以将“#u ftn0”修改为“示例:/#u ftn0”从何处获取OnClickedUrl的值?OnClickedUrl
仅作为示例。没有这样的事情只为了理解这个问题。我已经厌倦了应该重写但是当我点击
url时,无法获得任何反应。问题不是url,因为我正在尝试不带if块且不工作的代码。请尝试在onLoadResource
中创建toast。当我访问onLoadResource获取toast消息但如何获取时,请在onLoadResource中指定if(url.equals(url))块,因为返回的资源url?编辑了代码,请尝试此操作是否有效。没有返回值,因为它是一个空的url。使url您单击的url是完整路径url非常奇怪,当我单击链接时没有反应?我也厌倦了无if博客。请尝试在shouldovrrideurloading toast.makeText(getApplicationContext(),url,toast.LENGTH_LONG).show()中的if条件之前调用下面的toast消息;您应该会看到您单击的完整路径url,然后使用if条件中显示的urlpublic boolean shouldOverrideUrlLoading(WebView视图,字符串url){Toast.makeText(getApplicationContext(),url,Toast.LENGTH_LONG)。show();return true;}
无反应:S