2015-11-20 25 views
7

Problema:Facendo clic su un pulsante più di una volta in del browser pedonale non funziona

Cliccando un pulsante qualsiasi (tag input in html) di qualsiasi pagina html più di una volta browser strisce pedonali (XWalkView) non funziona in Android. (Facendo clic sul primo tempo funziona, ma facendo clic sul pulsante dopo che in qualsiasi momento non viene fornita alcuna risposta eccetto per il seguente errore nel Logcat di Eclipse IDE, vale a dire facendo clic sul file del tipo di input viene mostrato prima il selettore file ma facendo clic sullo stesso pulsante più di una volta. . ma dopo il riavvio del processo di applicazione si ripete E 'davvero un comportamento dispari)

errore:.

Questo messaggio di errore viene visualizzato su ogni clic di qualsiasi (tag input pulsante).

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

Codice:

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

risposta

6

Aggiunta seguente codice risolto il problema:

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

Menzionato here

+0

Quale versione di Crosswalk stavi usando? Sto vedendo questo problema ora ma il tuo codice sopra non ha aiutato a risolverlo. – airowe

+0

@airowe ** Il messaggio di errore ** è ancora presente ma è stato risolto il ** problema ** (di aver fatto clic su qualsiasi pulsante più di una volta nel browser crosswalk non funzionante). –