如何检查设备上是否安装了WhatsApp?

5
Linking.openURL(`whatsapp://send?phone=${phoneNumber}`);

上述代码将导航到 WhatsApp,但我想知道在尝试 openURL 之前是否有可能检查 WhatsApp 的存在。


https://dev59.com/9VoV5IYBdhLWcg3wTdTN - Miguel Rocha
@MiguelRocha:我知道这个链接,但它是关于Android而不是RN的。 - Isaac
检查软件包管理器列表。 - Rachit Tyagi
你可以尝试使用Linking.canOpenURL()吗?https://facebook.github.io/react-native/docs/linking#canopenurl - rabbit87
2个回答

11

来自React Native文档:

To start the corresponding activity for a link (web URL, email, contact etc.), call

Linking.openURL(url).catch(err => console.error('An error occurred', err));

If you want to check if any installed app can handle a given URL beforehand you can call

Linking.canOpenURL(url).then(supported => {
  if (!supported) {
    console.log('Can\'t handle url: ' + url);
  } else {
    return Linking.openURL(url);
  }
}).catch(err => console.error('An error occurred', err));
我假设如果没有安装WhatsApp,则会调用!supported块,您可以在那里进行计算。

2
可以使用PackageManager进行检查。只需遍历已安装的软件包并将其名称与WhatsApp软件包名称进行比较即可。
PackageManager packageManager = getApplicationContext().getPackageManager();
for (PackageInfo packageInfo : packageManager.getInstalledPackages(0)) {
  if (packageInfo.packageName.equals(“com.whatsapp")) {
    return true;
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接