错误讯息 - > shouldOverrideUrlLoading Webview Android

时间:2013-08-24 00:55:25

标签: android webview android-webview

我需要解决Webview和方法ShouldOverrideUrlLoading的问题。

我想显示一条消息,指出用户没有在手机上安装Twitter应用     

    @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.startsWith("tel:")) { 
                Intent intent = new Intent(Intent.ACTION_DIAL,
                        Uri.parse(url)); 
                startActivity(intent); 
        }else if(url.startsWith("http:") || url.startsWith("https:")) {
            view.loadUrl(url);
        }else if (url != null && url.startsWith("market://")) {
                view.getContext().startActivity(
                    new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                return true;
        } else if (url != null && url.startsWith("twitter://")) {
                view.getContext().startActivity(
                    new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                return true;
        }else{
    Toast.makeText(getApplicationContext(), "Twitter app is necessary", Toast.LENGTH_SHORT).show();
      }
            return false;

}

显示“应用程序意外停止的错误。请再试一次”

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您的Twitter Intent似乎存在问题。据我所知,你希望Twitter应用程序发布一些东西。请参阅他们的API,了解如何使用Intent启动Twitter应用程序。为防止崩溃,您可以执行以下操作:

 else if (url != null && url.startsWith("twitter://")) {
            try{
            view.getContext().startActivity(
                new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
             } catch(ActivityNotFoundException e){
               // do some stuff here, for example load the twitter url in the browser
             }
            return true;