Открыть собственные приложения в сети WebApp :: ERR-UNKNOWN-URL-SCHEME - PullRequest
0 голосов
/ 21 июня 2019

это мой первый вопрос здесь

У меня проблема с моим веб-приложением. С chrome плавающие значки spotify и WhatsApp открывают соответствующие приложения, но в веб-приложении (веб-просмотре страницы) я получаю эту ошибку:

ошибка

Net :: ERR-UNKNOWN-URL-СХЕМА

Это код плавающих значков на странице

<div style=position:fixed;top:50%;margin-top:100px;right:20px;z-index:999999999999999999>
    <a href="https://wa.me/541123609964"target=_blank>
        <img src={(GBP_URLPICTUREFILES)}icowsflotante2.png>
    </a>
</div>

это мое первое веб-приложение. Я веб-дизайнер, а не Android-программист, и мне становится трудно.

1 Ответ

0 голосов
/ 21 июня 2019

ОК, поэтому, чтобы начать вызов после нажатия на ссылку в вашем WebView, вы сначала должны создать ссылку со схемой такого типа:

<a href=\"tel:8056542739\">(805) 654-2739.</a>

Тогда в вашем коде вы должны переопределить shouldOverrideUrlLoading () следующим образом:

webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView wView, String url)
           {

            if (url.startsWith("mailto:") || url.startsWith("tel:") || url.startsWith("geo:") || url.startsWith("http:") || url.startsWith("https:")) {

                Intent intent = new Intent(Intent.ACTION_VIEW,
                           Uri.parse(url));

                startActivity(intent);

                return true; 

            } else if (url.startsWith("whatsapp:")) {

                Intent sendIntent = new Intent();
                sendIntent.setAction(Intent.ACTION_SEND);
                sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
                sendIntent.setType("text/plain");
                sendIntent.setPackage("com.whatsapp");

                startActivity(sendIntent);

                return true;

             } else if (url.startsWith("spotify:")) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(
                              "spotify:album:0sNOF9WDwhWunNAHPD3Baj"));
                intent.putExtra(Intent.EXTRA_REFERRER,
                Uri.parse("android-app://" + context.getPackageName()));

                startActivity(intent);

                return true;

             }

             return false;
           }
       });

Это переопределение отправляет что-либо со схемой tel :, mailto :, http: или https: новому «намерению» с ACTION_VIEW, что означает, что Android попытается найти одно или несколько приложений, установленных на устройстве, которые могут справиться с этим. вид URI. Приложение Phone может обрабатывать tel: так, что оно вызывается, если ваша ссылка содержит эту схему, как в моем примере. То же самое для схемы mailto :, которая должна открывать ваше приложение для составления электронной почты. Для WhatsApp и Spotify у них обоих есть такие схемы, как WhatsApp и Spotify, которые могут обрабатываться немного по-разному. Смотрите один из возможных способов выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...