Page blanche entre Splash screen et affichage webview
Résolu
Ilyass2020
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
Ilyass2020 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Ilyass2020 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
bonjour
je le dit et je le répète , je suis pas doué en java , mais j essai toujours de développer mon code webview, cette fois le probleme c'est que quand je lance mon appli il y'a un vide en blanc entre le splash screen et l affichage du contenu. je vous pris de m aider.
mon code :
MainActivity.java
AndroidManifest.xml
je le dit et je le répète , je suis pas doué en java , mais j essai toujours de développer mon code webview, cette fois le probleme c'est que quand je lance mon appli il y'a un vide en blanc entre le splash screen et l affichage du contenu. je vous pris de m aider.
mon code :
MainActivity.java
package com.akssa.groupe; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.RelativeLayout; public class MainActivity extends AppCompatActivity { WebView webView; RelativeLayout relativeLayout; Button btnNoInternetConnection; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // remove title requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webView); // loadUrl webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("tel:")) { Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); startActivity(intent); return true; } return false; } }); btnNoInternetConnection = (Button) findViewById(R.id.btnNoConnection); relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout); checkConnection(); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); // webSettings.setDomStorageEnabled(true); // webSettings.setUseWideViewPort(true); webSettings.setAllowContentAccess(true); webSettings.setAllowFileAccess(true); webSettings.setAppCacheEnabled(true); btnNoInternetConnection.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { checkConnection(); } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()){ webView.goBack(); return true; } return super.onKeyDown(keyCode, event); } public void checkConnection(){ ConnectivityManager connectivityManager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); NetworkInfo mobileNetwork = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (wifi.isConnected()){ webView.loadUrl("https://www.groupe-alakssa.ma/"); webView.setVisibility(View.VISIBLE); relativeLayout.setVisibility(View.GONE); } else if (mobileNetwork.isConnected()){ webView.loadUrl("https://www.groupe-alakssa.ma/"); webView.setVisibility(View.VISIBLE); relativeLayout.setVisibility(View.GONE); } else { webView.setVisibility(View.GONE); relativeLayout.setVisibility(View.VISIBLE); } } }
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.akssa.groupe"> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name="com.akssa.groupe.SplashScreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.akssa.groupe.MainActivity"> </activity> </application> </manifest>
A voir également:
- Page blanche entre Splash screen et affichage webview
- Supprimer page blanche word - Guide
- Screen whatsapp - Accueil - Messagerie instantanée
- Blue screen windows 10 - Guide
- Apowersoft screen recorder - Télécharger - Capture d'écran
- Screen une page web entiere - Guide
5 réponses
re,
Sûrement le temps que la page se charge.
Généralement, on affiche un loader lors du chargement et on le cache lorsque la page est chargée.
Un peu comme cela :
Sûrement le temps que la page se charge.
Généralement, on affiche un loader lors du chargement et on le cache lorsque la page est chargée.
Un peu comme cela :
progressBar.setVisibility(View.VISIBLE); webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("tel:")) { Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); startActivity(intent); return true; } return false; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); progressBar.setVisibility(View.GONE); } });
voila le code SplashScreen.java
package com.akssa.groupe;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class SplashScreen extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(SplashScreen.this,MainActivity.class));
finish();
}
},2000);
}
}
ça veux dire que en peux pas remplacerle progressBar par le splashscreen , le temp ou le webview ce charge .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question