zhangrl
zhangrl
  • 发布:2021-09-29 16:27
  • 更新:2021-10-12 09:00
  • 阅读:1089

【报Bug】webview访问h5 input file 选择相册图片 未授权不会触发onchange回调

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: 正式

HBuilderX版本号: 3.1.22

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: max3

页面类型: vue

打包方式: 离线

项目创建方式: HBuilderX

App下载地址或H5⽹址: http://d.firim.top/dqhy

示例代码:

plus.webview.loadURL(url)

h5链接使用vant <van-uploader v-model="fileList" multiple />

操作步骤:

1、项目用webview访问h5
2、h5的input file 选择相册图片

预期结果:

onchange正常获得图片blob信息

实际结果:

无反应

bug描述:

项目用webview访问h5 ,然后h5的input file 选择相册图片,未授权获取手机存储权限时 ,不会弹出获取本地存储授权提示,选择文件时就会弹出,此bug会造成选择相册图片无法触发 input onchange回调

2021-09-29 16:27 负责人:无 分享
已邀请:
zhangrl

zhangrl (作者)

此bug 暂时解决,初始化时候获取手机读写权限,但是现在审核严格,后面还是要做成上传图片时候可以正常获取权限

zhangrl

zhangrl (作者)

我们大佬解决了,我们打的是离线包,原生监听相册打开行为,加了授权操作

import io.dcloud.PandoraEntryActivity;  

public class YYPandoraEntryActivity extends PandoraEntryActivity {  

    @Override  
    public void startActivityForResult(Intent intent, int requestCode) {  
        if (intent.getAction().equals("android.intent.action.GET_CONTENT")){  
            PermissionUtil.requestPermissions(YYPlatApplication.getCurrActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,  Manifest.permission.READ_EXTERNAL_STORAGE}, new PermissionUtil.OnPermissionListener() {  
                @Override  
                public void onPermissionGranted() {  

                    runOnUiThread(new Runnable() {  
                        @Override  
                        public void run() {  
                            YYPandoraEntryActivity.super.startActivityForResult(intent, requestCode);  
                        }  
                    });  
                }  

                @Override  
                public void onPermissionDenied() {  
                    AbCenter.ME().postEvent("message", "permissionMessage,WRITE_EXTERNAL_STORAGE,READ_EXTERNAL_STORAGE");  
                }  
            });  
        }else{  
            super.startActivityForResult(intent, requestCode);  
        }  
    }  
}

该问题目前已经被锁定, 无法添加新回复