AndroidStudio中Webview中的文件上传按钮不起作用。
创始人
2024-08-21 06:30:25
0

1.添加以下代码到AndroidManifest.xml文件中的Webview activity中。

android:hardwareAccelerated="false"
android:allowFileAccess="true"
android:allowContentAccess="true"

2.在Webview的Client中覆写onShowFileChooser方法,示例如下:

@Override
public boolean onShowFileChooser(WebView webView, ValueCallback filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) {
    if (mFilePathCallback != null) {
        mFilePathCallback.onReceiveValue(null);
    }
    mFilePathCallback = filePathCallback;
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(webView.getContext().getPackageManager()) != null) {
        File photoFile = null;
        try {
            photoFile = createImageFile();
            takePictureIntent.putExtra("PhotoPath", mCameraPhotoPath);
        } catch (IOException ex) {
            Log.e(TAG, "Unable to create Image File", ex);
        }
        if (photoFile != null) {
            mCameraPhotoPath = "file:" + photoFile.getAbsolutePath();
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
        } else {
            takePictureIntent = null;
        }
    }
    Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
    contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
    contentSelectionIntent.setType("*/*");
    Intent[] intentArray;
    if (takePictureIntent != null) {
        intentArray = new Intent[]{takePictureIntent};
    } else {
        intentArray = new Intent[0];
    }
    Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
    chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
    chooserIntent.putExtra(Intent.EXTRA_TITLE, "FileChooser");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
    startActivityForResult(chooserIntent, mRequestCodeFilePicker);
    return true;
}

3.在Webview的 activity 中添加以下 onActivityResult 方法代码。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == mRequestCodeFilePicker) {
        if (mFilePathCallback == null) {
            return;
        }
        if (

相关内容

热门资讯

今年以来!微乐小程序多功能修改... 今年以来!微乐小程序多功能修改器,本来是真的辅助神器(新版有挂)-哔哩哔哩微乐小程序多功能修改器透视...
随着!破解潮娱乐鱼虾蟹,果然是... 随着!破解潮娱乐鱼虾蟹,果然是有辅助app(有挂规律)-哔哩哔哩1.破解潮娱乐鱼虾蟹 选牌创建新账号...
近年来!游戏辅助制作器,果然真... 近年来!游戏辅助制作器,果然真的有辅助app(有挂方法)-哔哩哔哩1.游戏辅助制作器 选牌创建新账号...
现场直击!随意玩房卡辅助器透视... 现场直击!随意玩房卡辅助器透视,总是真的是有辅助工具(有挂助手)-哔哩哔哩一、随意玩房卡辅助器透视可...
最新消息!新星游辅助软件,好像... 最新消息!新星游辅助软件,好像是真的辅助脚本(有挂教学)-哔哩哔哩1、操作简单,无需新星游辅助软件手...
事发当天!贪玩透视辅助,原来真... 事发当天!贪玩透视辅助,原来真的有辅助修改器(有挂头条)-哔哩哔哩1、下载好贪玩透视辅助正确养号方法...
经调查!免费宝宝浙江游戏辅助,... 经调查!免费宝宝浙江游戏辅助,都是是有辅助下载(详细教程)-哔哩哔哩1、首先打开免费宝宝浙江游戏辅助...
今天上午!盛世透视辅助器,总是... 今天上午!盛世透视辅助器,总是有挂辅助插件(有挂技巧)-哔哩哔哩1、盛世透视辅助器公共底牌简单,盛世...
来临!陇南摆叫辅助,真是是真的... 来临!陇南摆叫辅助,真是是真的辅助神器(确实有挂)-哔哩哔哩所有人都在同一条线上,像星星一样排成一排...
做出回应!广东闲来辅助神器免费... 做出回应!广东闲来辅助神器免费版,本来有挂辅助平台(有挂规律)-哔哩哔哩1、在广东闲来辅助神器免费版...