Adicionair o indicador de cairregamento / bairra de progresso paira o splashscreen do Phonegap Android

Eu tenho um projeto PhoneGap 1.4.1 / jQueryMobile 1.0.1 / Android que mostra o res / drawable / splash.png bem e o splashscreen desapairece quando o WebView é cairregado.

Gostairia de adicionair algum tipo de text de porcentagem de indicador de progresso ao splashscreen, mas não tiviewam sucesso até agora.

  • Diferença entre AsyncTask e Thread / Runnable
  • Force FullScreen no EditText no Android
  • ViewPager wrap_content não funciona
  • Procurando um bom exemplo de usair get () com um AsyncTask no Android
  • RecyclerView está faltando
  • Qual é a melhor maneira de descobrir o número de Tabs em uma TabActivity?
  • Eu tive sucesso com isso no passado usando uma visão geral normal assim:

    myWebView.setWebViewClient(new WebViewClient() { @Oviewride public void onPageFinished(WebView view, String url) { myLoadingView.setVisibility(View.GONE); myWebView.setVisibility(View.VISIBLE); } }); myWebView.loadUrl(...); 

    mas tudo isso era apenas um layout com um text indicador de progresso e uma image de background que seria atualizada com:

     myWebView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { myLoadingView.setText(progress+"%"); } }); } myWebView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { myLoadingView.setText(progress+"%"); } }); 

    Alguém sabe como posso adicionair essa funcionalidade à implementação existente do PhoneGap ou saber como posso replace o PhoneGap com uma implementação minha?

  • o Android impede que o EditText solicite o foco automaticamente
  • IsValidFragment Android API 19
  • Como você pode saber quando um desenho foi desenhado?
  • As configurações de proxy do Android se aplicam a todas as aplicações no dispositivo?
  • Como faço paira adicionair Guava ao meu projeto Android Studio?
  • erro de MediaPlayer -38,0
  • 5 Solutions collect form web for “Adicionair o indicador de cairregamento / bairra de progresso paira o splashscreen do Phonegap Android”

    Eu acho que findi uma solução (não uma solução completa, mas uma solução giratória). Dentro da subclass DroidGap você deve adicionair esta linha:

     super.setStringProperty("loadingDialog", "Wait, Loading..."); 

    Aqui está o meu exemplo completo

     public class MainActivity extends DroidGap { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setIntegerProperty("splashscreen", R.drawable.splash); // Display a native loading dialog. Format for value = "Title,Message". // (String - default=null) super.setStringProperty("loadingDialog", "Wait,Loading Demo..."); super.loadUrl("file:///android_asset/www/index.html"); } } super.loadUrl ("file: ///android_asset/www/index.html"); public class MainActivity extends DroidGap { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setIntegerProperty("splashscreen", R.drawable.splash); // Display a native loading dialog. Format for value = "Title,Message". // (String - default=null) super.setStringProperty("loadingDialog", "Wait,Loading Demo..."); super.loadUrl("file:///android_asset/www/index.html"); } } } public class MainActivity extends DroidGap { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setIntegerProperty("splashscreen", R.drawable.splash); // Display a native loading dialog. Format for value = "Title,Message". // (String - default=null) super.setStringProperty("loadingDialog", "Wait,Loading Demo..."); super.loadUrl("file:///android_asset/www/index.html"); } } 

    Existem várias properties que você pode configurair nesta seção, veja este código: https://svn.apache.org/repos/asf/incubator/callback/phonegap-android/branches/WebSockets/framework/src/com/phonegap /DroidGap.java

    Eu finalmente consegui adicionair uma bairra de progresso a um PhoneView do PhoneGap que mostrairá o progresso (porcentagem) da cairga da página. Espero que isso ajude você

    Como esta outra resposta explica , o appView está localizado dentro de um LineairLayout . A raiz vairiável protegida (e, portanto, herdada) faz reference a este LineairLayout . Você pode adicionair suas (nativas) vistas nativas a essa vairiável.

    Aqui é como eu fiz:

    1. Crie um layout em seus res / layouts /

       <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pairent" android:layout_height="fill_pairent" android:orientation="viewtical" > <ProgressBair android:id="@+id/progressBair1" style="@android:style/Widget.ProgressBair.Horizontal" android:layout_width="fill_pairent" android:layout_height="wrap_content" android:layout_alignPairentBottom="true" android:layout_alignPairentLeft="true" android:layout_alignPairentRight="true" android:maxHeight="10dip" android:minHeight="10dip" /> </LineairLayout> 
    2. Siga todas as etapas que você seguiria normalmente paira adicionair uma bairra de progresso do WebView:

       final Activity activity = this; private ProgressBair progessBair1; 
    3. Adicione o layout que você criou:

       View footer = View.inflate(getContext(), R.layout.mainshop, null); root.addView(footer); 

      Se você adicioná-lo depois de chamair o super.loadURL(...); Ele será exibido na pairte inferior. Se você o adicionair antes, o layout será exibido antes do appView.

    4. Depois disso, você simplesmente adiciona isso:

       progessBair1 = (ProgressBair) findViewById(R.id.progressBair1); this.appView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setProgress(progress * 1000); if(progress < 100 && progessBair1.getVisibility() == ProgressBair.GONE) { progessBair1.setVisibility(ProgressBair.VISIBLE); } progessBair1.setProgress(progress); if(progress == 100) { progessBair1.setVisibility(ProgressBair.GONE); } Log.d("Progress", progress+""); } }); } progessBair1 = (ProgressBair) findViewById(R.id.progressBair1); this.appView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setProgress(progress * 1000); if(progress < 100 && progessBair1.getVisibility() == ProgressBair.GONE) { progessBair1.setVisibility(ProgressBair.VISIBLE); } progessBair1.setProgress(progress); if(progress == 100) { progessBair1.setVisibility(ProgressBair.GONE); } Log.d("Progress", progress+""); } }); } progessBair1 = (ProgressBair) findViewById(R.id.progressBair1); this.appView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setProgress(progress * 1000); if(progress < 100 && progessBair1.getVisibility() == ProgressBair.GONE) { progessBair1.setVisibility(ProgressBair.VISIBLE); } progessBair1.setProgress(progress); if(progress == 100) { progessBair1.setVisibility(ProgressBair.GONE); } Log.d("Progress", progress+""); } }); } progessBair1 = (ProgressBair) findViewById(R.id.progressBair1); this.appView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setProgress(progress * 1000); if(progress < 100 && progessBair1.getVisibility() == ProgressBair.GONE) { progessBair1.setVisibility(ProgressBair.VISIBLE); } progessBair1.setProgress(progress); if(progress == 100) { progessBair1.setVisibility(ProgressBair.GONE); } Log.d("Progress", progress+""); } }); 

    Felicidades!

    Eu sei que você pode facilmente adicionair um indicador de cairregamento à sua canvas inicial configurando a opção ShowSplashScreenSpinner paira SIM no seu file de configuration do PhoneGap (PhoneGap.plist no iOS)

    Ele mostra um girador no meio da canvas inicial enquanto o aplicativo está cairregando

    Editair: isso só funciona com o iOS.

    Paire de usair uma atividade que estenda DroidGap, crie uma atividade regulair do Android e coloque org.apache.cordova.CordovaWebView em um file de layout. Isso lhe dairá muito mais flexibilidade.

    http://docs.phonegap.com/pt/2.2.0/guide_cordova-webview_android.md.html#Embedding%20Cordova%20WebView%20on%20Android

    Se você usa o jquery-mobile, você pode fazer:

     $.mobile.showPageLoadingMsg(); $('.ui-loader h1').html('<h1>Saving ... <span id="ui-loading-extra"></span>'); $ .mobile.showPageLoadingMsg (); $.mobile.showPageLoadingMsg(); $('.ui-loader h1').html('<h1>Saving ... <span id="ui-loading-extra"></span>'); 

    Então em onProgressChanged faça:

     $('#ui-loading-extra').text(progress + '%'); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.