Webview не работает с элементом выбора HTML - PullRequest
0 голосов
/ 02 марта 2019

Так что мое веб-представление не работает с элементом select.Другими словами, когда я щелкаю элемент select на любой странице, он не показывает меню.

html пример выбора элемента:

<select>
    <option>test</option>
    <option>testing it</option>
    <option>bla bla bla</option>
</select>

java, создающий мое веб-представление:

        NestedWebView nwv = new NestedWebView(activity.getApplicationContext());
    nwv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    registerForContextMenu(nwv);
    nwv.setWebViewClient(new webViewClient());
    nwv.setWebChromeClient(new webChromeClient(nwv));
    nwv.addJavascriptInterface(new JSInterface(), "drconsole");
    nwv.getSettings().setJavaScriptEnabled(true);
    nwv.getSettings().setLoadWithOverviewMode(true);
    nwv.getSettings().setUseWideViewPort(true);
    nwv.getSettings().setSupportZoom(true);
    nwv.getSettings().setBuiltInZoomControls(true);
    nwv.getSettings().setDisplayZoomControls(false);
    nwv.getSettings().setAllowFileAccess(true);
    nwv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    nwv.getSettings().setSupportMultipleWindows(true);
    nwv.getSettings().setGeolocationEnabled(true);
    nwv.setDrawingCacheEnabled(true);
    nwv.getSettings().setPluginState(WebSettings.PluginState.ON);
    nwv.loadUrl(url);

    nwv.setDownloadListener(new DownloadListener(){
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength){
            try{
                DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));

                String filename = new URL(url).getFile();

                request.allowScanningByMediaScanner();
                request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename.substring(filename.lastIndexOf('/')+1));
                DownloadManager dm = (DownloadManager) activity.getSystemService(DOWNLOAD_SERVICE);
                dm.enqueue(request);

                Toast toast = new Toast(activity.getApplicationContext());
                View iview = activity.getLayoutInflater().inflate(R.layout.activity_toast, (ViewGroup) activity.findViewById(R.id.toast_root));

                TextView text = (TextView) iview.findViewById(R.id.text);
                text.setText("Downloading File");
                toast.setDuration(Toast.LENGTH_SHORT);
                toast.setView(iview);
                toast.show();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    });

my build.gradle

android {
compileSdkVersion 27
buildToolsVersion '28.0.3'
defaultConfig {
    applicationId "deeproot.theanarch.org.deeproot"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

У меня также есть почти все возможное для использования webviewclient и webchromeclient.Пожалуйста, прокомментируйте, прежде чем голосовать по моему вопросу.

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Чтобы исправить эту ошибку, веб-представление ДОЛЖНО быть инициализировано с действием, а не контекстом приложения.

Эта строка:

NestedWebView nwv = new NestedWebView(activity.getApplicationContext());

Должно быть:

NestedWebView nwv = new NestedWebView(activity);
0 голосов
/ 02 марта 2019

Вы должны расширить WebViewClient, есть подробное введение, как это сделать https://stackoverflow.com/a/49350716/4159854

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