Есть ли способ открыть ссылки «whatsapp: // send /? Text = abc» из гибридного приложения cordova без использования плагинов для обмена социальными сетями cordova? - PullRequest
1 голос
/ 23 октября 2019

Я сделал гибридное приложение из моего существующего углового проекта с использованием 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. Я не могу найти какие-либо выводы по этому вопросу.

Я все делаю правильно или мне чего-то не хватает?

...