WebView без адресной строки ведет себя иначе - PullRequest
0 голосов
/ 19 июня 2020

У меня есть гибридное приложение с веб-представлением. К сожалению, веб-представление не воспроизводит те же функции, что и стандартное. У меня есть следующий код:

 webView.webViewClient = WebViewClient()

Если я это сделаю, не весь код JavaScript и HTML 5 будет выполняться правильно даже со следующей строкой:

webView.settings.javaScriptEnabled = true

Самая неприятная проблема заключается в том, что я не могу получить доступ к папке изображений камеры. Я также перегрузил onPermissionRequest из WebChromeClient . Если я оставлю веб-представление без изменений, прокомментировав следующую строку:

     webView.webViewClient = WebViewClient() <<--- When this is commented the app works fine 

Все работает нормально, но веб-представление отображает адресную строку, а мне это не нужно. Я действительно не понимаю, почему Google создал такой плохо продуманный элемент управления по сравнению с его конкурентами. Может ли кто-нибудь помочь мне найти способ воспроизвести точно такие же возможности Chrome без отображения адресной строки?

Ответы [ 3 ]

0 голосов
/ 19 июня 2020
Use Below Code : 

   web_view.settings.setSupportZoom(true)
                web_view.settings.builtInZoomControls = true
                web_view.settings.loadsImagesAutomatically = true
                web_view.scrollBarStyle = View.SCROLLBARS_INSIDE_OVERLAY
                web_view.settings.javaScriptCanOpenWindowsAutomatically = true
                web_view.settings.setSupportMultipleWindows(true)
                web_view.settings.builtInZoomControls = true
                web_view.settings.javaScriptEnabled = true
                web_view.settings.setAppCacheEnabled(true)
                web_view.settings.databaseEnabled = true
                web_view.settings.domStorageEnabled = true
                web_view.settings.setGeolocationEnabled(true)
                web_view.settings.loadWithOverviewMode = true
                web_view.settings.useWideViewPort = true
                web_view.settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.NORMAL
0 голосов
/ 20 июня 2020
    for kotlin:
     val intent = Intent()
            intent.type = "image/*"
            intent.action = Intent.ACTION_GET_CONTENT
            startActivityForResult(Intent.createChooser(intent, "Select Picture"), 0)

for java:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),100);

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == SELECT_IMAGE) {
        if (resultCode == Activity.RESULT_OK) {
            if (data != null) {
                try {
                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), data.getData());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        } else if (resultCode == Activity.RESULT_CANCELED)  {
            Toast.makeText(getActivity(), "Canceled", Toast.LENGTH_SHORT).show();
        }
    }
}
0 голосов
/ 19 июня 2020

Попробуйте установить webChromeClient вместо webViewClient, например,

webView.webChromeClient = WebChromeClient()
...