Я сделал гибридное приложение из моего существующего углового проекта с использованием Cordova. Я пытаюсь добавить кнопки социальных сетей, такие как WhatsApp, LinkedIn и т. Д.
LinkedIn работает нормально, поскольку URL-адрес общего ресурса можно открыть из InAppBrowser.
Когда я пытаюсь открыть WhatsApp с пользовательской схемой URL whatsapp://send?text=abc
, я получаю эту ошибку ERR_UNKNOWN_URL_SCHEME
.
Из связанных вопросов StackOverflow я попробовал некоторые решения. Ни один из них, кажется, не работает, и я получаю то же сообщение об ошибке.
Я попытался добавить эти строки в config.xml
, чтобы разрешить использование схемы WhatsApp URL
<allow-intent href="whatsapp:*" />
<access origin="whatsapp:*" launch-external="yes" />
<preference name="AllowedSchemes" value="whatsapp" />
Я попытался отредактировать файл InAppBrowser.java и изменил метод ShouldOverrideUrlLoading
, чтобы открыть представление Intent Action View при посещении. "WhatsApp:".
@SuppressWarnings("deprecation")
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
if (url.startsWith("geo:") || url.startsWith(WebView.SCHEME_MAILTO) || url.startsWith("market:") || url.startsWith("intent:") || url.startsWith("whatsapp:")) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
cordova.getActivity().startActivity(intent);
return true;
} catch (android.content.ActivityNotFoundException e) {
LOG.e(LOG_TAG, "Error with " + url + ": " + e.toString());
}
}
}
Я использую Angular 7, cordova-android 8.1.0, cordova-plugin-inappbrowser 2.0.2
Чтобы воспроизвести вышеуказанную проблему,
В html:
<button (click)="sendViaWhatsapp()">Send on WhatsApp</button>
В JS:
sendViaWhatsapp() {
window.open("whatsapp://send/?text=abc", "_system");
}
Можно ли добиться этого без использования каких-либо плагинов для социальных сетей cordova?
Думаю, это проблемас Cordova WebView, и URL открывается с помощью InAppBrowser. Я не могу найти какие-либо выводы по этому вопросу.
Я все делаю правильно или мне чего-то не хватает?