Die*_*ego 99 android sharing social-networking android-intent whatsapp
由于我发现了一些较旧的帖子,告诉whatsapp不支持这个,我想知道是否有什么改变了,是否有办法打开一个whatsapp'聊天'与我通过意图发送的号码?
Man*_*rma 166
更新 请参阅https://faq.whatsapp.com/en/android/26000030/?category=5245251
WhatsApp的点击聊天功能允许您开始与某人聊天,而无需将电话号码保存在手机的地址簿中.只要您知道此人的电话号码,您就可以创建一个链接,以便与他们开始聊天.
使用:https://api.whatsapp.com/send?phone = 15551234567
不要使用:https://api.whatsapp.com/send?phone = + 001- (555)1234567
示例:https://api.whatsapp.com/send?phone = 15551234567 & text = I'm%20interested%20in%20your%20car%20for%20sale
原始答案 这是解决方案
public void onClickWhatsApp(View view) {
PackageManager pm=getPackageManager();
try {
Intent waIntent = new Intent(Intent.ACTION_SEND);
waIntent.setType("text/plain");
String text = "YOUR TEXT HERE";
PackageInfo info=pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA);
//Check if package exists or not. If not then code
//in catch block will be called
waIntent.setPackage("com.whatsapp");
waIntent.putExtra(Intent.EXTRA_TEXT, text);
startActivity(Intent.createChooser(waIntent, "Share with"));
} catch (NameNotFoundException e) {
Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
.show();
}
}
Run Code Online (Sandbox Code Playgroud)
另见http://www.whatsapp.com/faq/en/android/28000012
use*_*782 58
使用此代码,您可以使用给定的号码打开whatsapp聊天.
void openWhatsappContact(String number) {
Uri uri = Uri.parse("smsto:" + number);
Intent i = new Intent(Intent.ACTION_SENDTO, uri);
i.setPackage("com.whatsapp");
startActivity(Intent.createChooser(i, ""));
}
Run Code Online (Sandbox Code Playgroud)
Die*_*ego 25
我找到了以下解决方案,首先你需要whatsapp id:
我在这里和其他论坛中与其他一些主题的报告相匹配,我找到的登录名是某种形式:国际区号不含0或+开头+电话号码没有第一个0 + @ s.whatsapp.net
例如,如果您居住在荷兰并且电话号码为0612325032,那么荷兰没有0或+的电话号码为31612325023@s.whatsapp.net - > +31,而没有0的电话号码.
public void sendWhatsAppMessageTo(String whatsappid) {
Cursor c = getSherlockActivity().getContentResolver().query(ContactsContract.Data.CONTENT_URI,
new String[] { ContactsContract.Contacts.Data._ID }, ContactsContract.Data.DATA1 + "=?",
new String[] { whatsappid }, null);
c.moveToFirst();
Intent whatsapp = new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.android.contacts/data/" + c.getString(0)));
c.close();
if (whatsapp != null) {
startActivity(whatsapp);
} else {
Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
.show();
//download for example after dialog
Uri uri = Uri.parse("market://details?id=com.whatsapp");
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
}
}
Run Code Online (Sandbox Code Playgroud)
Sat*_*esh 14
无论是否安装Whatsapp,这都应该有效.
boolean isWhatsappInstalled = whatsappInstalledOrNot("com.whatsapp");
if (isWhatsappInstalled) {
Uri uri = Uri.parse("smsto:" + "98*********7")
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Hai Good Morning");
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);
} else {
Toast.makeText(this, "WhatsApp not Installed",
Toast.LENGTH_SHORT).show();
Uri uri = Uri.parse("market://details?id=com.whatsapp");
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
startActivity(goToMarket);
}
private boolean whatsappInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
boolean app_installed = false;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
} catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}
Run Code Online (Sandbox Code Playgroud)
Ily*_*man 10
在Marshmallow S5上测试,它的工作原理!
Uri uri = Uri.parse("smsto:" + "phone number with country code");
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);
Run Code Online (Sandbox Code Playgroud)
这将打开与一个人的直接聊天,如果未安装whatsup这将抛出异常,如果电话号码不知道whatsup他们将提供通过短信或简单的短信发送邀请
试试这个,这段代码通过Intent.ACTION_VIEW启动WhatsApp,不要忘记使用国家代码到电话号码.
String phoneNumberWithCountryCode = "+62820000000";
String message = "Hallo";
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse(
String.format("https://api.whatsapp.com/send?phone=%s&text=%s",
phoneNumberWithCountryCode, message))));
Run Code Online (Sandbox Code Playgroud)
这是通过 发送消息的最新方法Whatsapp,即使收件人的电话号码不在您的Whatsapp聊天或电话Contacts列表中也是如此。
private fun openWhatsApp(number: String) {
try {
packageManager.getPackageInfo("com.whatsapp", PackageManager.GET_ACTIVITIES)
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse("https://wa.me/$number?text=I'm%20interested%20in%20your%20car%20for%20sale")
)
intent.setPackage("com.whatsapp")
startActivity(intent)
} catch (e: PackageManager.NameNotFoundException) {
Toast.makeText(
this,
"Whatsapp app not installed in your phone",
Toast.LENGTH_SHORT
).show()
e.printStackTrace()
}
}
Run Code Online (Sandbox Code Playgroud)
intent.setPackage("com.whatsapp")将帮助您避免使用选择器打开并Whatsapp直接打开。
重要提示:如果您以语句结尾catch,即使Whatsapp已安装。请添加queries如下manifest.xml:
<queries>
<package android:name="com.whatsapp" />
</queries>
Run Code Online (Sandbox Code Playgroud)
请参阅此答案以了解更多详细信息。
//NOTE : please use with country code first 2digits without plus signed
try {
String mobile = "911234567890";
String msg = "Its Working";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://api.whatsapp.com/send?phone=" + mobile + "&text=" + msg)));
}catch (Exception e){
//whatsapp app not install
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
217238 次 |
| 最近记录: |