7

Проблема:При нажатии на любую кнопку больше, чем один раз в пешеходном браузере не работает

При нажатии на любую кнопку (ввод тегов в HTML) любой HTML страницы несколько раз в пешеходном браузере (XWalkView) не работает в Android. (Щелчок в первый раз работает, но нажатие кнопки после этого в любое время не дает никакого ответа, кроме следующей ошибки в Logcat Eclipse IDE, т. Е. Нажатие файла типа ввода показывает первый выбор файла, но однократное нажатие одной кнопки, отсутствие ответа. . Но после перезапуска приложения процесс повторяется Это действительно странное поведение)

ошибка.

Это сообщение об ошибке отображается на каждое нажатие любой кнопки (вход тега).

11-20 17:32:04.019: E/chromium(31406): [ERROR:xwalk_autofill_client.cc(170)] Not implemented reached in virtual void xwalk::XWalkAutofillClient::OnFirstUserGestureObserved() 

Код:

index.html

<html> 
<body> 
<form> 
<input type="file" accept="*/*"/> 
<input type="submit"/> 
</form> 
</body> 
</html> 

MainActivity.java

import org.xwalk.core.XWalkView; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.LinearLayout; 

public class MainActivity extends Activity { 
    private LinearLayout linearLayout; 
    private XWalkView xWalkWebView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     linearLayout = (LinearLayout) findViewById(R.id.LinearLayout1); 
     xWalkWebView = new XWalkView(this.getApplicationContext(), this); 
     xWalkWebView.load("file:///android_asset/index.html", null); 
     linearLayout.addView(xWalkWebView); 
    } 
} 

ответ

6

Добавление следующий код решить проблему:

@Override 
    protected void onPause() { 
     super.onPause(); 
     if (mXwalkView != null) { 
      mXwalkView.pauseTimers(); 
      mXwalkView.onHide(); 
     } 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     if (mXwalkView != null) { 
      mXwalkView.resumeTimers(); 
      mXwalkView.onShow(); 
     } 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     if (mXwalkView != null) { 
      mXwalkView.onDestroy(); 
     } 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (mXwalkView != null) { 
      mXwalkView.onActivityResult(requestCode, resultCode, data); 
     } 
    } 

    @Override 
    protected void onNewIntent(Intent intent) { 
     if (mXwalkView != null) { 
      mXwalkView.onNewIntent(intent); 
     } 
    } 

Упомянуто here

+0

Какую версию Crosswalk вы использовали? Я вижу эту проблему сейчас, но ваш код выше не помог решить проблему. – airowe

+0

@airowe ** Ошибка ** сообщение все еще существует, но проблема ** ** (нажатие любой кнопки более одного раза в браузере межсетевого экрана не работает). –