我正在使用自己的html代码在WebView中显示html页面。我想点击取消按钮关闭当前活动。 我的代码就像:
public class WebHtml extends Activity
{
String historyUrl, baseUrl;
URL url = null;
WebView mWebView;
String html = "<html>" +
"<body>" +
"<form id='form1' name='form1' method='post' action='get.html'>" +
"User <input type='text' name='user'> <br />" +
"Password <input type='password' name='user'> <br />" +
"<input type='submit' name='Submit' value='Login' />" +
"<input type='button' value='Cancel' name='Cancel' onClick='javascript:window.close();'' />" +
"</form>" +
"</body>" +
"</html>";
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// setContentView(R.layout.webview);
mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadDataWithBaseURL(baseUrl, html, "text/html", "utf-8", historyUrl);
mWebView.setWebViewClient(new HelloWebViewClient());
setContentView(mWebView);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())
{
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
private class HelloWebViewClient extends WebViewClient
{
public void onPageStarted(WebView view, String url, Bitmap bitmap)
{
Log.i("ShowForm", "onPageStarted()" + System.currentTimeMillis());
historyUrl = url.toString();
}
public void onPageFinished(WebView view, String url)
{
Log.i("ShowForm", "onPageFinisheded()" + System.currentTimeMillis());
baseUrl = url.toString();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
}
}
问题是我无法使其关闭当前的表单活动。我在onClick上使用了(window.close(),form.close(),javascript:window.close()但是它们没有显示效果)&amp; (我尝试了window.unload(),这使得异常)此外,System.exit()会在活动首次启动时关闭应用程序。
请建议我该怎么做。
谢谢,
HAPS。
答案 0 :(得分:1)
您可以将取消按钮的onClick更改为网址吗?类似于onClick="document.location.href='http://exitActivity';"
。
然后在您的shouldOverrideUrlLoading
方法中,您可以拦截该网址并退出该应用。
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url.contains("http://exitActivity")
finish(); // close activity
else
view.loadUrl(url);
return true;
}