Linking.openURL(`whatsapp://send?phone=${phoneNumber}`);
Приведенный выше код будет перемещаться в WhatsApp, однако мне интересно, возможно ли проверить существование WhatsApp перед попыткой openURL
openURL
С Реагировать с собственной документацией :
Чтобы запустить соответствующее действие для ссылки (веб-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));
Чтобы запустить соответствующее действие для ссылки (веб-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 иВы можете сделать свои вычисления там.
!supported
Это можно проверить с помощью PackageManager.Просто переберите установленные пакеты и сравните его имя с именем пакета whatsapp.
PackageManager packageManager = getApplicationContext().getPackageManager(); for (PackageInfo packageInfo : packageManager.getInstalledPackages(0)) { if (packageInfo.packageName.equals(“com.whatsapp")) { return true; } }