我正在开发一个webview
android应用程序.
我无法修复我的应用中的问题以进行反向导航.我正在使用此代码并尝试对此进行所有修改.
我无法修复我的应用中的问题以进行反向导航.我正在使用此代码并尝试对此进行所有修改.
public class DeviceActivity extends Activity { private WebView web; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); web = (WebView) findViewById(R.id.webView); web.getSettings().setJavaScriptEnabled(true); web.getSettings().setJavaScriptCanOpenWindowsAutomatically(false); web.getSettings().setPluginsEnabled(false); web.getSettings().setSupportMultipleWindows(false); web.getSettings().setSupportZoom(false); web.setVerticalScrollBarEnabled(false); web.setHorizontalScrollBarEnabled(false); //Our application's main page will be loaded web.loadUrl("file:///android_asset/fbp/index.html"); web.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view,String url) { return false; } public void onBackPressed (){ if (web.canGoBack()) { web.goBack(); } else { //My exit alert code goes here. } } }); } }
这不会导航回来,而是退出应用程序.
任何帮助,将不胜感激.
解决方法
在您的活动代码中添加它(不在onCreate()中或嵌套在其他地方)
@Override public void onBackPressed() { if (web.copyBackForwardList().getCurrentIndex() > 0) { web.goBack(); } else { // Your exit alert code,or alternatively line below to finish super.onBackPressed(); // finishes activity } }
这将导航回WebView历史堆栈,直到它为空,然后执行默认操作(在这种情况下,它完成活动).
您可能还应该将WebViewClient设置为使shouldOverrideUrlLoading返回true,否则您将不会加载任何链接.