Как проверить, установлен ли WhatsApp на устройстве? - PullRequest
0 голосов
/ 21 сентября 2018
Linking.openURL(`whatsapp://send?phone=${phoneNumber}`);

Приведенный выше код будет перемещаться в WhatsApp, однако мне интересно, возможно ли проверить существование WhatsApp перед попыткой openURL

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

С Реагировать с собственной документацией :

Чтобы запустить соответствующее действие для ссылки (веб-URL, электронная почта, контакт и т. Д.), Позвоните

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

Если вы хотите заранее проверить, может ли какое-либо установленное приложение обрабатывать данный URL, вы можете позвонить

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 иВы можете сделать свои вычисления там.

0 голосов
/ 21 сентября 2018

Это можно проверить с помощью PackageManager.Просто переберите установленные пакеты и сравните его имя с именем пакета whatsapp.

PackageManager packageManager = getApplicationContext().getPackageManager();
for (PackageInfo packageInfo : packageManager.getInstalledPackages(0)) {
  if (packageInfo.packageName.equals(“com.whatsapp")) {
    return true;
  }
}
...