Я новичок в React-native. Мы пытаемся реализовать собственное приложение, в котором будет предоставлена кнопка, чтобы каждый раз, когда пользователь нажимает на кнопку, он направлялся в магазин, если приложение не установлено. Если приложение уже установлено по нажатию кнопки, он сможет открыть приложение, которого в данный момент нет.
AndroidManifest.xml
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT">
</category>
<category android:name="android.intent.category.BROWSABLE">
</category>
<data android:scheme="whatsapp"></data>
</intent-filter>
Выше приведен код, который мы изменили в файле AndroidManifest.xml.
App.js
У нас есть метод с именем handle () , который будет обрабатывать события
handle(){
let appName = 'whatsapp';
let url = 'https://play.google.com/store/apps/details?id=com.whatsapp';
Linking.openURL(url).catch(err => {
if (err.code === 'EUNSPECIFIED') {
if (Platform.OS === 'android') {
Linking.openURL(
url
);
}
} else {
throw new Error(`Could not open ${appname}. ${err.toString()}`);
}
});}
Приведенный выше код работает нормально для открытия приложения в Playstore. Но когда приложение уже установлено на устройстве, оно по нажатию кнопки должно сразу открыть приложение с помощью пользовательского URL.
Когда мы используем canOpenURL () с пользовательской схемой URL, это ничего не делает. И когда я использую пользовательскую схему Url с openURL () , она выдает мне предупреждение о том, что в android.intent.action.VIEW ничего не предусмотрено и не определено, но оно предоставляется.
const url = 'whatsapp://';
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));
Пожалуйста, помогите нам. Спасибо в Advace !!