2016-09-15 2 views
0

나는 사용자가 whatsapp를 열고 사용자가 선택한 연락처로 메시지를 보내는 링크를 선택할 수있는 소셜 페이지에서 작업하고 있습니다.href 링크를 통한 메시지 전송 및 앱이없는 사용자를위한 대체 (fallback)

현재 아래와 같이 표시하고 있습니다.

<a class="modal__link modal__link--whatsapp js-product-share__link--wa" 
       href="whatsapp://send?text=<?php echo $whatsappBody . " " . $currentUrl;?>" data-action="share/whatsapp/share"> 

이 방법은 IOS와 Android를 모두 지원합니다. 그러나 내 문제는 whatsapp 이더넷 장치에 설치되어 있지 않으면 단순히 일반 오류 메시지가 나타납니다.

이상적으로 사용자를 적절한 저장소로 리디렉션하여 whatsapp을 다운로드 할 수있게하려고합니다.

현재 폴백하는 방법이 무엇인지 알 수 있습니까?

답변

1
boolean installed = appInstalledOrNot("com.whatsapp"); 

if(installed){ 
// do your task 
}else{ 
try { 
    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + "com.whatsapp")); 
    i.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(i); 
} catch (android.content.ActivityNotFoundException anfe) { 
    ... 
} 
} 


private boolean appInstalledOrNot(String uri) { 
      PackageManager pm = getPackageManager(); 
      boolean app_installed; 
      try { 
       pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); 
       app_installed = true; 
      } 
      catch (PackageManager.NameNotFoundException e) { 
       app_installed = false; 
      } 
      return app_installed; 
     } 

이 시도하고

+0

를 작동하는 경우에 당신이 친절 알맞은 답을 받아들이고하지 않으면 것은 나에게 내가 나의 무지를 용서 –

+0

거기에 다른 뭔가를 찾을 수 있도록 알려 주시기 위해 작동하는 경우 알려주세요 이것은 뻔하지 만 이것은 앱 개발에만 관련이 있으며 브라우저에서 앱을 참조 할 때가 아닙니다. – peter1187

+0

브라우저에서 참조하려는 경우 activitynotfoundexception에 추가하거나 브라우저에서 직접 보내려는 경우 Uri.parse ("market : // details? id ="+ "com.whatsapp") startActivity (새 의도 (Intent.ACTION_VIEW, Uri.parse ("https://play.google.com/store/apps/details?id=com.whatsapp")))); –