Android Studio webview 调用链接只工作一次

标签 android html webview

我的activity java是这样的。问题是html调用链接

<a href="tel:555-555-5555">

只工作一次。我尝试了很多东西,但我无法让它工作。我该如何解决?

public class Wall extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    String url = "http://##########.com/#############/";
    setContentView(R.layout.activity_wall);
    WebView webView = (WebView)findViewById(R.id.webView);
    webView.getSettings().setAppCacheMaxSize( 5 * 1024 * 1024 ); // 5MB
    webView.getSettings().setAppCachePath( getApplicationContext().getCacheDir().getAbsolutePath() );
    webView.getSettings().setAllowFileAccess( true );
    webView.getSettings().setAppCacheEnabled( true );
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setCacheMode( WebSettings.LOAD_DEFAULT ); // load online by default
    if ( !isNetworkAvailable() ) { // loading offline
        webView.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK );
    }
    webView.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String url) {
            if (url.startsWith("tel:")) {
                Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
                startActivity(intent);
                webView.reload();
                return true;
            }
            if (url.startsWith("sms:")) {
                Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
                startActivity(intent);
                webView.reload();
                return true;
            }
            webView.loadUrl(url);
            return true;
        }
    });
    webView.setWebChromeClient(new WebChromeClient());
    webView.loadUrl("http://zacseed.com/parttime/");



    }



@Override
public void onBackPressed() {

    WebView webView = (WebView) findViewById(R.id.webView);
    webView.setWebViewClient(new WebViewClient());
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }

}

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE );
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}}

我尝试设置一个按钮,使用 javascript 将数字复制到剪贴板。但这并没有奏效。在浏览器中它工作正常。但不在应用程序中

最佳答案

试试这个:

private class MyBrowser extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 
            if (url.startsWith("tel:") || url.startsWith("sms:") || url.startsWith("smsto:") || url.startsWith("mailto:") || url.startsWith("mms:") || url.startsWith("mmsto:") || url.startsWith("market:")) {
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                startActivity(intent);
                return true;
            } else {
                view.loadUrl(url);
                return true;
            }
        }
    }

这通常会打开手机应用程序。如果您还有其他问题,请尽管提问。

关于Android Studio webview 调用链接只工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46400982/

相关文章:

javascript string - 删除 PHP 指令,只留下 HTML 元素

javascript - 我可以在 ALTER 查询中使用问号吗?

javascript - WebView中来自OnClick(来自HTML中的按钮)的Activity中的触发方法

javascript - 使用javascript动态绑定(bind)onclick事件

java - 是否可以动态访问 R.drawable 变量?

android - 如何授予我的系统应用程序 root 权限以绑定(bind)特权端口?

android - 在特定时间在imageview中设置图像

android - WebView 内容在切换 Activity 并返回后部分消失

webview - 如何在 React Native 的 WebView 中使用源而不是 html

java - 如何在不解码整个图像的情况下知道 jpeg 格式 (android)