业务需求中有点击按钮,从我们APP跳转到WhatsApp和某个人聊天,发现前端实现是
https://api.whatsapp.com/send?phone=xxxxx 把该链接通过Android系统浏览器打开,如果手机安装WhatsApp会直接打开app并跳转到对应的账号下,说明 WhatsApp有对应的scheme。但是通过系统浏览器并不能调起WhatsApp,可以通过重写 WebViewClient 中的 shouldOverrideUrlLoading(WebView view, String url)进行拦截,然后 通过 Intent.ACTION_VIEW及URI解析进行跳转,主要代码如下
public static void chatInWhatsApp(Context mContext, String mobileNum) {try {final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://api.whatsapp.com/send?phone=" + mobileNum));intent.setPackage("com.whatsapp");mContext.startActivity(intent);} catch (Exception e) { // 没有安装WhatsAppe.printStackTrace();}}
如果要分享文案到WhatsApp,实现类似分享文案内容到短息。主要是 setAction及添加 Package 限制。
// 分享内容到WhatsApppublic static void shareToWhatsApp(Context mContext, String content) {if (AppUtils.checkAppInstalled("com.whatsapp")) { //判断是否装了whatsAPPIntent sendIntent = new Intent();sendIntent.setAction(Intent.ACTION_SEND);sendIntent.putExtra(Intent.EXTRA_TEXT, content);sendIntent.setType("text/plain");sendIntent.setPackage("com.whatsapp");mContext.startActivity(sendIntent);}}