Возможный дубликат:

Этот

Этот

Этот

Я знаю, но я все еще задаю этот вопрос по той причине, что Я НЕ ПОНЯЛ ЭТИ ОТВЕТЫ . И я также знаю, что это моя проблема, и эти участники хорошо справились. Никого не виню.

Я новичок в Android Studio, и эти ответы определенно не были дружественными для новичков. потому что я смотрел на них около 20 часов до сих пор.

В любом случае, вот код, который у меня есть:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webviewid);
        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl("https://www.google.com/");

        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        webView.getSettings().setDomStorageEnabled(true);

    }
}

Любая помощь приветствуется.

0
Vdofy videos 27 Ноя 2021 в 08:50

1 ответ

Лучший ответ

Попробуй это

     package com.example.filechooser;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Bundle;
import android.webkit.SslErrorHandler;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class MainActivity extends Activity {

    private final static int FILECHOOSER_RESULTCODE = 1;
    private ValueCallback<Uri[]> mUploadMessage;

    WebView mainWebView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        mainWebView = findViewById(R.id.main_web_view);

        mainWebView.setWebViewClient(new MyWebViewClient());

        mainWebView.setWebChromeClient(new MyWebChromeClient());

        mainWebView.getSettings().setJavaScriptEnabled(true);

        mainWebView.loadUrl("https://example.com");
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {

        if (requestCode == FILECHOOSER_RESULTCODE) {

            if (null == mUploadMessage || intent == null || resultCode != RESULT_OK) {
                return;
            }

            Uri[] result = null;
            String dataString = intent.getDataString();

            if (dataString != null) {
                result = new Uri[]{ Uri.parse(dataString) };
            }

            mUploadMessage.onReceiveValue(result);
            mUploadMessage = null;
        }
    }


    // ====================
    // Web clients classes
    // ====================

    /**
     * Clase para configurar el webview
     */
    private class MyWebViewClient extends WebViewClient {

        // permite la navegacion dentro del webview
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }


    /**
     * Clase para configurar el chrome client para que nos permita seleccionar archivos
     */
    private class MyWebChromeClient extends WebChromeClient {

        // maneja la accion de seleccionar archivos
        @Override
        public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {

            // asegurar que no existan callbacks
            if (mUploadMessage != null) {
                mUploadMessage.onReceiveValue(null);
            }

            mUploadMessage = filePathCallback;

            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("*/*"); // set MIME type to filter

            MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), MainActivity.FILECHOOSER_RESULTCODE );

            return true;
        }
    }

}
1
Vijay S 27 Ноя 2021 в 09:24
Прежде чем попросить вас объяснить мне, как это работает, на сайте main_web_view возникла ошибка "Невозможно устранить".
 – 
Vdofy videos
27 Ноя 2021 в 09:18
Проверьте свой activitymain.xml и убедитесь, что идентификатор веб-просмотра - main_web_view
 – 
Vijay S
27 Ноя 2021 в 09:20
Я не могу переключить main_web_view на веб-просмотр в файле .java ..?
 – 
Vdofy videos
27 Ноя 2021 в 09:21
Конечно, ты можешь это изменить
 – 
Vijay S
27 Ноя 2021 в 09:23
Какой у вас идентификатор Webview в xml?
 – 
Vijay S
27 Ноя 2021 в 09:23