Панель инструментов Android WebView Activity - PullRequest
0 голосов
/ 07 мая 2018

В моем приложении есть активность WebView, которая загружает URL.

У меня есть пользовательская панель инструментов, и я хочу, чтобы она показывала заголовок страницы, URL-адрес и, если это безопасное соединение или нет.

Я заметил, что несколько известных приложений (Twitter, Youtube, Telegram ...) имеют точно такую ​​же модель панели инструментов для своих действий в WebView, и мне интересно, есть ли в Android панель инструментов по умолчанию для этого, или они создали такую ​​же настраиваемая панель инструментов.

И, если это второй случай (мне нужно создать собственную панель инструментов самостоятельно), я могу получить доступ к заголовку страницы, переопределяющему метод onPageFinished в WebViewClient, но как я могу получить это, если соединение безопасное или нет?

Я включил снимок панели инструментов Telegram, о которой я говорю (она одинакова для других приложений):

enter image description here

Большое спасибо и извините за мой английский!

1 Ответ

0 голосов
/ 07 мая 2018

Чтобы отобразить веб-URL в таком виде, вам не требуется WebViewActivity.

Этого можно добиться с помощью пользовательских вкладок Chrome.

Для этого выполните следующие действия: (1) добавить зависимость в вашем build.gradle -> compile 'com.android.support:customtabs:23.3.0'

(2) напишите этот метод в каком-нибудь служебном классе

    public static void openUrlInChromeCustomTab(Context context, String url) {
    try {
        CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
        CustomTabsIntent customTabsIntent = builder.build();
        customTabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        customTabsIntent.launchUrl(context, Uri.parse(url));
    } catch (ActivityNotFoundException e) {
        // might not available.
        //openUrlLinkInWebView(context, url);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

(3) вызовите этот метод, откуда вы хотите открыть ссылку, например: openUrlInChromeCustomTab(activity, url");

вот и все.

Кроме того, вы можете настроить его так, как вам нужно. узнать больше на https://developer.chrome.com/multidevice/android/customtabs

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