Esquema de url desconhecido da web do Android
Com o código abaixo, eu posso obter o meu url carregado corretamente, mas, eu fico "ERR_UNKNOWN_URL_SCHEME" ao tentar toque em html links que começa com mailto: whatsapp: e tg: (Telegrama).
Alguém me pode ajudar a resolver isto, por favor? Infelizmente não conheço Java de todo: ([[9]} Obrigado.import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
// Force links and redirects to open in the WebView instead of in a browser
mWebView.setWebViewClient(new WebViewClient());
// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
// Use remote resource
mWebView.loadUrl("http://myexample.com");
}
}
9
2 answers
Você tem que definir um cliente na webview e passar estes para uma intenção
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if( URLUtil.isNetworkUrl(url) ) {
return false;
}
if (appInstalledOrNot(url)) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity( intent );
} else {
// do something if app is not installed
}
return true;
}
});
}
Pode ter um método para verificar se o app está instalado
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
}
return false;
}
7
Author: Cristian Gomez, 2017-01-19 15:49:45
mailto
as ligações não serão carregadas no seu webview
.Você tem que verificar para ele assim em shouldOverrideUrlLoading
e lidar com ele com intent
.
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("mailto:")) {
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, message);
startActivity(Intent.createChooser(share, "Title of the dialog the system will open"));
view.reload();
return true;
}
}
Pergunta Similar Android WebView ERR_ UNKNOWN_URL_SCHEME Error
0
Author: sunil sunny, 2017-05-23 12:08:53