2013-08-24 4 views
0

Мне нужна проблема с Webview и метод ShouldOverrideUrlLoading.Сообщение об ошибке -> shouldOverrideUrlLoading Webview Android

Я хочу, чтобы отобразить сообщение о том, что пользователь не установлено приложение твиттер на телефон

 
    @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;

}

Ошибка, которая показывает «приложение неожиданно остановилось. Повторите попытку»

Может кто-нибудь поможет?

+0

«Приложение неожиданно остановилось» - это показано пользователю. Не могли бы вы разместить некоторый вывод LogCat? «Нужно» пишется с двойным «s», кстати, – Droidman

+0

@ Maver1ck Logcat: https://www.dropbox.com/s/8as0eu855wis884/screen1.png – user2661416

ответ

1

У вас возникла проблема с вашим твиттером Intent. Насколько я понял, вы хотите, чтобы приложение Twitter могло публиковать что-то. Обратитесь к их API о том, как запустить приложение Twitter с помощью Intent. Во избежание сбоев вы можете сделать следующее:

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; 
+0

О, решила! благодаря! @ Maver1ck – user2661416

+0

На самом деле вам следует попробовать/поймать все ваши вызовы startActivity, а не все устройства имеют приложения для телефона, которые обрабатывают tel: links. Не уверен, что все Android может справиться с рынком: url схемы ... – Russ

Смежные вопросы