2015-11-20 17 views
7

Problem:Klikając dowolny przycisk więcej niż raz w przeglądarce przejściu nie działa

Kliknięcie dowolnego przycisku (tag input w HTML) z dowolnej strony html więcej niż raz w przeglądarce przejściu (XWalkView) nie działa w systemie Android. (Kliknięcie po raz pierwszy działa, ale kliknięcie po nim w dowolnym momencie nie daje żadnej odpowiedzi z wyjątkiem następującego po błędzie w Logcat środowiska Eclipse IDE, tj. Kliknięcie pliku typu wejściowego pokazuje pierwszy wybór pliku, ale kliknięcie tego samego przycisku więcej niż jeden raz, brak odpowiedzi. . jednak po ponownym uruchomieniu aplikacji proces powtarza To naprawdę dziwne zachowanie)

błąd.

Ten komunikat o błędzie jest wyświetlany na każde kliknięcie dowolnego klawisza (tagu wejściowego).

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

Kod:

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); 
    } 
} 

Odpowiedz

6

Dodanie po kodzie rozwiązać problem:

@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); 
     } 
    } 

Wymienione here

+0

Jaką wersję Crosswalk używasz? Widzę teraz ten problem, ale powyższy kod nie pomógł go rozwiązać. – airowe

+0

@airowe ** Błąd ** wiadomość nadal istnieje, ale ** Problem (kliknięcie dowolnego przycisku więcej niż jeden raz w przeglądarce nie działa) został rozwiązany. –