Android Webview Back Button无法正常工作

时间:2014-12-06 09:58:35

标签: java android webview

我遇到了一个webview后退问题。在关于webview backbutton之前,我从未遇到过这个问题。

当我按下后退按钮时,logcat会给我以下错误:

12-05 23:56:23.264: W/KeyCharacterMap(3743): Load KCM of non-default device may incur unexpected result
12-05 23:56:23.264: W/UnimplementedWebViewApi(3743): Unimplemented WebView method onKeyDown called from: android.webkit.WebView.onKeyDown(WebView.java:2323)

我以前从未见过这个错误。有没有人知道可能导致这种情况的原因?

代码:

package org.development;

import java.io.File;




import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebSettings.RenderPriority;
import android.webkit.WebSettings.ZoomDensity;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;


public class ImagenesActivity extends Activity {

ListView list;
Intent intent;
TextView toma_foto;
Button button_foto;
ImageAdapter adapter;
private WebView mWebView;


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.imagenesactivity);

    toma_foto = (TextView) findViewById(R.id.toma_foto);
    button_foto = (Button) findViewById(R.id.button_foto);
    list=(ListView)findViewById(R.id.list);
    mWebView = (WebView) findViewById(R.id.webView1); 
    mWebView.getSettings().setLoadWithOverviewMode(true);
    mWebView.getSettings().setUseWideViewPort(true);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setDefaultZoom(ZoomDensity.FAR);
    mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
    mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    mWebView.setWebViewClient(new WebViewClient());

    mWebView.clearCache(true);

    mWebView.loadUrl("about:blank");  
    mWebView.clearView();
    mWebView.loadUrl("http://mysite23.com/activity");
    mWebView.setWebChromeClient(new WebChromeClient());
    mWebView.setWebViewClient(new WebViewClient(){ 

        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

                           } 

        public void onPageFinished(WebView view, String url) {

           //view.loadUrl("javascript:document.getElementsByClassName('elgg-page-header').style.visibility='hidden';alert('testing');");
        }


        });

    File file = new File(Environment.getExternalStorageDirectory() + "/genx/");
    String[] filas = file.list();

    if(filas==null)
        filas = new String[0];

    adapter=new ImageAdapter(this, filas);
    list.setAdapter(adapter);     
}


public void foto (View view){
    /**We send to the camera Activity*/
    //Intent j = new Intent(this, CameraActivity.class);
    //startActivity(j);
    //finish(); 
    mWebView.loadUrl("about:blank");  
    mWebView.clearView();
    mWebView.loadUrl("http://mysite23.com/activity");
}
public class myWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
@Override
public void onBackPressed() {
    if(mWebView.canGoBack() == true) {
        mWebView.goBack();
    } else { 
        ImagenesActivity.super.onBackPressed(); //Replace MyActivity With the name of your activity.
    }
}



}

0 个答案:

没有答案