Support for other protocols in Android webview

I've created a web view app, the page that is displayed features market:// links but upon clicking them I get the 404 screen along with the error that the protocol is not supported. I've tried looking through documentation but was unable to find anything relating to this. Any help is much appreciated.

19
задан erdemlal 22 November 2013 в 00:25
поделиться

1 ответ

Чтобы ссылки работали, на вашем устройстве/эмуляторе должно быть установлено приложение Market. Также вашему приложению необходимо запросить разрешение на доступ к сети.

УПД: в качестве обходного пути вы можете вызвать код java из веб-представления, например, если вы создаете ссылки, подобные этой:

<a href="javascript:go('market://your.path.to.market.app')">..</a>

Определите функцию javascript с именем go():

<script type="text/javascript">
   function go(link) {
     if (handler) {
           handler.go(link);
         } else {
           document.location = link;
         }
   }
</script>

Затем вы можете передать объект-обработчик в веб-представление:

webview.addJavascriptInterface(new Handler() {
        @Override
        public void go(String marketUrl) {
                         //start market intent here
        }
    },  "handler");

Интерфейс обработчика можно определить следующим образом:

   public interface Handler{

    public void go(String url);

}
1
ответ дан 30 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: