2016-12-05 5 views
2

以下のコードを使用して、最初に試してみるとwebviewに戻ります。しかし、レンダリング能力が低いため、WebViewをXWalkViewに置き換えました。 XWalkViewへの変更は、私だけthis約戻っXWalkViewで行く見つける戻るボタンを使ってCrossWalkのXWalkViewに戻ったり、それを無効にするには?

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    WebView mWebView = (WebView) findViewById(R.id.webview); 
    if (event.getAction() == KeyEvent.ACTION_DOWN) { 
     switch (keyCode) { 
      case KeyEvent.KEYCODE_BACK: 

       if (mWebView.canGoBack()) { 
        mWebView.goBack(); 
       } else { 
        finish(); 
        if (MainActivity.mTencent.isSessionValid()) { 
         MainActivity.logout(); 
        } 
       } 
       return true; 
     } 

    } 
    return super.onKeyDown(keyCode, event); 
} 

。しかし、私はそれを使用する例を見つけることができません。 バックボタンを実装していないときは、バックボタンをダブルクリックするとアプリが終了します。

私の質問は です。1. XWalkViewに戻るには、いくつかのコードが役立つ場合があります。 2.バックファンクションを使用していないときに、バックボタンクリックイベントを無効にするにはどうすればよいですか。

ありがとうございます。

+0

[WebViewの中に戻るボタンを無効にする](https://stackoverflow.com/a/44715005/6521116) –

答えて

4

を使用することができ、私はこれを解決:この作品もののにおける活動xwalkviewでこれを置くが、戻って、時にはいくつかの歴史を失いました。だから私は誰かにもっと良い答えをここで与えたい。 GOBACKため

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    //WebView mWebView = (WebView) findViewById(R.id.webview); 
    XWalkView mXWalkView = (XWalkView) findViewById(R.id.xWalkView); 
    if (event.getAction() == KeyEvent.ACTION_DOWN) { 
     switch (keyCode) { 
      case KeyEvent.KEYCODE_BACK: 

       if (mXWalkView.getNavigationHistory().canGoBack()) { 
        mXWalkView.getNavigationHistory().navigate(XWalkNavigationHistory.Direction.BACKWARD, 1) ; 
       } else { 
        finish(); 
        if (MainActivity.mTencent.isSessionValid()) { 
         MainActivity.logout(); 
        } 
       } 
       return true; 
     } 

    } 
    return super.onKeyDown(keyCode, event); 
} 

無効にバックイベントのために、あなたは、これらの方法dispatchKeyEventonBackPressedonKeyDownのいずれかをオーバーライドすることができます。詳細については、this answerを参照してください。

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 
    // TODO Auto-generated method stub 
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { 
     return true; 
    } 
    return super.dispatchKeyEvent(event); 
} 
2

あなたは掘削の日後xwalkviewhistory.cangoback()

+0

うん、私はこれを知っているが、私はマニュアルからそれを使用する方法がわかりません。あなたはいくつかの情報を与えますか? –

+0

とそれを無効にする方法は? –

関連する問題