BHA*_*PTA 3 android android-intent whatsapp
我想打开未保存在用户手机中的某个号码的whatsapp聊天框。
我正在使用以下代码:
Uri uri = Uri.parse("smsto:" + str_MobileNumber);
Intent i = new Intent(Intent.ACTION_SENDTO, uri);
i.putExtra("sms_body", "Hello");
i.setPackage("com.whatsapp");
mContext.startActivity(i);
Run Code Online (Sandbox Code Playgroud)
Pra*_*V R 14
方法 1 - 使用 android 组件名称
public static void openWhatsAppConversation(Context context, String number, String message) {
number = number.replace(" ", "").replace("+", "");
Intent sendIntent = new Intent("android.intent.action.MAIN");
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, message);
sendIntent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.Conversation"));
sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(number) + "@s.whatsapp.net");
context.startActivity(sendIntent);
}
Run Code Online (Sandbox Code Playgroud)
方法 2 - 使用 whatsapp api uri
public static void openWhatsAppConversationUsingUri(Context context, String numberWithCountryCode, String message) {
Uri uri = Uri.parse("https://api.whatsapp.com/send?phone=" + numberWithCountryCode + "&text=" + message);
Intent sendIntent = new Intent(Intent.ACTION_VIEW, uri);
context.startActivity(sendIntent);
}
Run Code Online (Sandbox Code Playgroud)
抱歉回复晚了。我想你的问题必须现在解决。您可以尝试使用以下代码打开未保存号码的对话:
private void openWhatsApp(String number) {
try {
number = number.replace(" ", "").replace("+", "");
Intent sendIntent = new Intent("android.intent.action.MAIN");
sendIntent.setComponent(new ComponentName("com.whatsapp","com.whatsapp.Conversation"));
sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(number)+"@s.whatsapp.net");
context.startActivity(sendIntent);
} catch(Exception e) {
Log.e(TAG, "ERROR_OPEN_MESSANGER"+e.toString());
}
}
Run Code Online (Sandbox Code Playgroud)