2016-09-15 35 views
0

我正在开发一个社交页面,允许用户选择将打开whatsapp并向用户选择的联系人发送消息的链接。Whats应用程序通过href链接发送消息并为没有应用程序的用户提供回退

我目前正在如下所示执行此操作。

<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(new Intent(Intent.ACTION_VIEW,Uri.parse(“https://play.google.com/store/apps/details?id=com.whatsapp”))); –

相关问题