2013-08-24 2 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. 내가 아는 한 당신은 트위터 앱에 뭔가를 게시하고 싶다. 인 텐트를 사용하여 트위터 앱을 시작하는 방법에 대한 API를 참조하십시오. 충돌을 방지하려면 다음을 수행하십시오.

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 : link를 처리 할 전화 앱이있는 것은 아닙니다. 모든 안드로이드가 시장을 처리 할 수 ​​있는지 확실하지 않은 경우 : 구성 URL – Russ

관련 문제