Cómo obtener net :: ERR_UNKNOWN_URL_SCHEME mientras llama al número de teléfono de la página HTML en Android
Estoy recibiendo "net :: ERR_UNKNOWN_URL_SCHEME" al llamar a una opción de número de teléfono desde una página HTML en Android. ¿Necesito agregar algún permiso (s) en el manifiesto para que esto funcione? No he añadido nada en el manifiesto hasta ahora. Aquí está el código HTML:
<a href="tel:+1800229933">Call us free!</a>
- Inconsistencias con el video HTML5 en un WebView de Android
- Soporte de selector de archivos en el teléfono para ios y Android
- Algunos dispositivos Android extremadamente lentos al representar elementos de lienzo
- La geolocalización HTML5 ignora la opción enableHighAccuracy?
- Cómo crear una aplicación de Android con HTML 5
- Volver a escribir el código Java a JS - la creación de un audio de bytes?
- Imagen de superposición de Phonegap en la vista previa de la cámara para Android
- ¿Es posible construir una aplicación Android con PhoneGap estrictamente dentro de Visual Studio?
- Impactos de rendimiento de Cordova / PhoneGap?
- Live Video Streaming para Android usando Phonegap?
- Recursos y Frameworks para el desarrollo móvil (iphone, android) usando HTML5
- ¿Puedo usar Javascript para obtener la brújula para iOS y Android?
- Vista web de Android cargando la página html5 de la tarjeta SD con videos mp4 en varios API
Lo siguiente debería funcionar y no requerir permisos en el manifiesto (básicamente reemplazar shouldOverrideUrlLoading y manejar los enlaces por separado de tel, mailto, etc.):
mWebView = (WebView) findViewById(R.id.web_view); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if( url.startsWith("http:") || url.startsWith("https:") ) { return false; } // Otherwise allow the OS to handle things like tel, mailto, etc. Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity( intent ); return true; } }); mWebView.loadUrl(url);
Además, tenga en cuenta que en el fragmento de arriba estoy habilitando JavaScript, que probablemente también desee, pero si por alguna razón no lo hace, simplemente elimine esas 2 líneas.
He tenido este problema con mailto:
y tel:
enlaces dentro de un iframe (en Chrome, no una webview). Al hacer clic en los vínculos se mostraría la página gris "página no encontrada" e inspeccionar la página mostró que tenía un ERR_UNKNOWN_URL_SCHEME error.
La adición de target="_blank"
, como se sugiere en esta discusión sobre el problema, solucionó el problema para mí.
Pruebe de esta manera, espero que esto le ayudará a resolver su problema.
Main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center"> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>
MyActivity.java
public class MyActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); webView = (WebView) findViewById(R.id.webView); webView.loadData("<a href=\"tel:+1800229933\">Call us free!</a>", "text/html", "utf-8"); } }
Añade este permiso en AndroidManifest.xml
<uses-permission android:name="android.permission.CALL_PHONE"/>
Si recibe el código "ERR_UNKNOWN_URL_SCHEME" es más probable que el sitio en el que se encuentre o la aplicación que esté intentando descargar intente recopilar información del dispositivo que se está utilizando. Este es el protocolo para muchas empresas de puesta en marcha, LLC'S, y las empresas que tienen una base de clientes progresiva. El propósito de la recolección de datos se llama "ITTR", que significa "Comercio de Información para el Alivio Fiscal". El consumidor no tiene derecho legal a denegar el acceso a su información personal una vez que esté de acuerdo con los "Términos y Condiciones" que estas entidades consideren aplicables para el uso de su producto. La mayoría de las entidades antes mencionadas se beneficiarán de la divulgación de información al consumidor mediante la reducción de impuestos o el estado de exención.