''net::ERR_unknown_url_scheme'' en webview android studio
Resuelto
ILISS
-
Posky -
Posky -
hola
primero no soy bueno en java, estoy tratando de configurar un WebView en Android Studio con la ayuda de tutoriales de YouTube. al final pegué el enlace de mi sitio de WordPress. el problema es que tengo un código en mi sitio de WordPress que permite hacer una llamada telefónica desde el navegador Google Chrome en un smartphone, pero en el WebView aparece este mensaje:
net::ERR_UNKNOWN_URL_SCHEME
aquí está mi código:
MainActivity.java
Mi Androidmanifest.xml
primero no soy bueno en java, estoy tratando de configurar un WebView en Android Studio con la ayuda de tutoriales de YouTube. al final pegué el enlace de mi sitio de WordPress. el problema es que tengo un código en mi sitio de WordPress que permite hacer una llamada telefónica desde el navegador Google Chrome en un smartphone, pero en el WebView aparece este mensaje:
net::ERR_UNKNOWN_URL_SCHEME
aquí está mi código:
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; 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); // eliminar título 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()); 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); } } } Mi 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.CALL_PHONE"/> <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>
2 respuestas
Hola,
Debes sobrecargar el WebViewClient
--
@+
Buno, Moderador
Lo urgente está hecho, lo imposible está en curso. Para los milagros, prever un plazo...
Lo urgente está hecho, lo imposible está en curso. Para los milagros, prévoir un délai...
Debes sobrecargar el WebViewClient
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; } }); --
@+
Buno, Moderador
Lo urgente está hecho, lo imposible está en curso. Para los milagros, prever un plazo...
Lo urgente está hecho, lo imposible está en curso. Para los milagros, prévoir un délai...
funciona como debe.