Android应用扫描WhatsApp QR码无需手机号打开聊天的实现咨询
解决方案
你扫码得到的https://wa.me/qr/前缀的短链不需要提取手机号,直接通过ACTION_VIEW类型的Intent交给WhatsApp解析即可直接打开对应聊天窗口,代码实现如下:
完整扫码回调处理代码
mCodeScanner.setDecodeCallback(new DecodeCallback() { @Override public void onDecoded(@NonNull Result result) { String qrContent = result.getText().trim(); // 校验扫码结果为WhatsApp QR短链 if (qrContent.startsWith("https://wa.me/qr/")) { Intent openWaChat = new Intent(Intent.ACTION_VIEW); openWaChat.setData(Uri.parse(qrContent)); // 固定跳转WhatsApp,避免触发系统浏览器打开 openWaChat.setPackage("com.whatsapp"); try { startActivity(openWaChat); } catch (ActivityNotFoundException e) { // 自定义处理未安装WhatsApp的异常场景 Toast.makeText(getApplicationContext(), "请先安装WhatsApp", Toast.LENGTH_SHORT).show(); } } } });
扩展说明
- 无需提取手机号:短链的解析匹配逻辑完全由WhatsApp内部处理,不需要你自己从链接中解析用户手机号
- 支持携带预制消息:如果需要打开聊天时自动填充待发送的文本,可以额外添加参数:
openWaChat.putExtra(Intent.EXTRA_TEXT, "预设的发送内容"); - 兼容WhatsApp商业版:如果需要支持商务版WhatsApp,把
setPackage参数替换为com.whatsapp.w4b即可,也可做分支判断同时适配普通版和商业版。
内容的提问来源于stack exchange,提问作者Kruti Bhatt
相关产品推荐
相关产品推荐

