我粘贴了一小段代码,允许用户单击webview
并返回到我的登录应用程序。仅当用户单击在 webview
中运行的 Web 应用程序内的注销时,webview
中的 Web 应用程序才应执行此操作。换句话说,它不应该仅仅因为他们单击了 WebView 中的某个位置就返回到登录应用程序。
我尝试使用 onPageStarted
执行此操作,但无法使其正常工作。它要求 3 个参数,而 Android Studio
甚至不会编译它。这可能是我尝试调用它的方式,因为在阅读文档后我不太明白如何调用该方法。
此外,我尝试创建一个名为 myWebClient
的私有(private)类来调用 onPageStarted
但似乎无法在我的 MainActivity< 中正确调用该类
.
这是工作代码,在 WebView 中单击任何鼠标都会将我带回我的应用程序。
webView.setOnTouchListener(new View.OnTouchListener() {
String checkurl;
public boolean onTouch(View v, MotionEvent e) {
Intent intent = new Intent(context, MainActivity.class);
startActivity(intent);
Toast.makeText(getApplicationContext(), checkurl, Toast.LENGTH_LONG).show();
return false;
}
});
这是我尝试过的方法,但没有成功。
webView.setOnTouchListener(new View.OnTouchListener() {
String checkurl;
public boolean onTouch(View v, MotionEvent e) {
public void onPageStarted( WebView view, String url, Bitmap favicon){
if (checkurl == "mylogoutURLgoes here") {
Intent intent = new Intent(context, MainActivity.class);
startActivity(intent);
}
super.onPageStarted(webView, url, favicon);
}
Toast.makeText(getApplicationContext(), checkurl, Toast.LENGTH_LONG).show();
}
});
最佳答案
这可能就是您正在寻找的:
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if ("myLogoutUrl".equals(url)){
//do stuff
}
super.onPageStarted(view, url, favicon);
}
});
另一个解决方案是添加 Javascript
接口(interface)来与代码进行通信。
关于java - 注销 Web 应用程序时从 Webview 返回应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29776806/