I convert a website in an android app using web view but it keeps stopping in my client mobile. His phone is morto E4 his API level is 25 and I set min SDK of app 21 and max is 29. I don't understand the issue. It's working fine in my phone and I also test in 3 more phones it's working. Following is my code and everything I use in my code. kindly help me i don't upload logo of my app if required I'll do that.
Gradle-app
enter code here
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.farah.tawaqqo"
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
main activity
enter code here
package com.farah.tawaqqo;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.Toast;
import com.farah.tawaqqo.Common.Common;
import java.net.ConnectException;
public class MainActivity extends AppCompatActivity {
WebView webView;
ProgressBar progressBar;
ProgressDialog progressDialog;
private String url = "https://tawaqqo.com/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
progressDialog = new ProgressDialog(this);
if (Common.isConnectedInternet(getBaseContext())) {
// progressDialog.dismiss();
WebSettings webSettings = webView.getSettings();
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webSettings.setJavaScriptEnabled(true);
webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient());
} else {
// progressDialog.dismiss();
progressDialog.setTitle("Internet Issue");
progressDialog.setMessage("Please connect to wifi.");
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
}
progressBar = (ProgressBar) findViewById(R.id.progressBar);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
progressBar.setVisibility(view.VISIBLE);
progressBar.setProgress(newProgress);
setTitle("Loading.....");
if (newProgress == 100) {
progressBar.setVisibility(view.GONE);
setTitle(view.getTitle());
}
super.onProgressChanged(view, newProgress);
}
});
}
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else
super.onBackPressed();
}
}
splash activity
enter code here
package com.farah.tawaqqo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Window;
import android.view.WindowManager;
public class Splash extends AppCompatActivity {
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent=new Intent(getApplicationContext(),MainActivity.class);
startActivity(intent);
finish();
}
},3000);
}
}
**Common class for internet connection**
enter code here
package com.farah.tawaqqo.Common;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class Common {
public static boolean isConnectedInternet(Context context)
{
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(context.CONNECTIVITY_SERVICE);
if(connectivityManager != null)
{
NetworkInfo[] info = connectivityManager.getAllNetworkInfo();
if( info != null)
{
for(int i=0;i<info.length;i++)
{
if(info[i].getState() == NetworkInfo.State.CONNECTED)
return true;
}
}
}
return false;
}
}