![](/img/trans.png)
[英]how to open whatsapp or whatsapp business with intent android studio?
[英]how to open Whatsapp business in android
我正在使用此代碼從我的 android 應用程序中將文本共享到 whatsapp 中的特定號碼
private fun shareTextOnWhatsapp(message: String, phoneNumber: String) {
val url = "https://api.whatsapp.com/send?phone=$phoneNumber"+"&text=" + URLEncoder.encode(message, "UTF-8")
val i = Intent(Intent.ACTION_VIEW)
i.data = Uri.parse(url)
startActivity(i)
}
它工作得很好。 但是我要做的是,如果用戶在他的手機中安裝了Whatsapp Business ,那么它應該打開whatsapp business而不是默認的whatsapp 。 任何幫助將不勝感激
這就是我能夠做到的方式
Whatsapp 商務 package
const val WHATSAPP_BUSINESS_PACKAGE_NAME = "com.whatsapp.w4b"
然后我檢查了是否安裝了whatsapp業務,然后相應地調用了幫助函數
// if whatsapp business is installed
if (isAppInstalled(WHATSAPP_BUSINESS_PACKAGE_NAME, this)) {
shareTextOnWhatsappBusiness(shareText)
} else { // share text to default whatsapp
shareTextOnWhatsapp(shareText, order.user.mobile)
}
這是從上面共享的代碼中調用的兩個函數
private fun shareTextOnWhatsapp(message: String, phoneNumber: String) {
val url = "https://api.whatsapp.com/send?phone=$phoneNumber"+"&text=" + URLEncoder.encode(message, "UTF-8")
val i = Intent(Intent.ACTION_VIEW)
i.data = Uri.parse(url)
startActivity(i)
}
// tells if an app with specific packagename is installed or not
fun isAppInstalled(packageName: String, context: Context): Boolean {
return try {
val packageManager = context.packageManager
packageManager.getPackageInfo(packageName, 0)
true
} catch (e: PackageManager.NameNotFoundException) {
false
}
}
請記住,如果您支持Android 11
,那么packageManager.getPackageInfo(packageName, 0)
將始終返回 false 您必須將其添加到manifest
文件中
<queries>
<package android:name="com.whatsapp.w4b" />
</queries>
正如官方文檔中提到的
Android 11 更改了應用程序如何查詢用戶已安裝在設備上的其他應用程序並與之交互
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.