uni-app 打包的h5嵌入到安卓app里,uni.chooseImage无回调
uni-app 打包的h5嵌入到安卓app里,uni.chooseImage无回调
产品分类
uniapp/H5
开发环境信息
| 项 | 信息 | 
|---|---|
| PC开发环境操作系统 | Windows | 
| PC开发环境操作系统版本号 | win10 | 
| HBuilderX类型 | 正式 | 
| HBuilderX版本号 | 3.6.4 | 
| 浏览器平台 | 手机系统浏览器 | 
| 浏览器版本 | 14 | 
| 项目创建方式 | HBuilderX | 
示例代码
uni.chooseImage({  
    count: 9, //默认9  
    sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有  
    sourceType: ['album', 'camera'], //从相册选择  
    success: function(res) {  
        uni.showToast({  
            title: `chooseImage-${res}`,  
            icon: 'none',  
            duration: 3000  
        })  
    },  
    fail: function(res) {  
        uni.showToast({  
            title: `chooseImage-fail-${res}`,  
            icon: 'none',  
            duration: 3000  
        })  
    }  
});
操作步骤
uniapp 打包的h5 嵌入到小程序里面,然后从安卓app里面打开这个小程序,上传图片
预期结果
可以上传图片
实际结果
不可以上传图片
bug描述
uniapp 打包的h5 嵁入到小程序里面,然后从安卓app里面打开这个小程序,上传图片,uni.chooseImage什么回调都没有,点击弹出照片跟相册页面,但是都无法上传,点击浏览,近期图片单个可上传,多个也不可上传

更多关于uni-app 打包的h5嵌入到安卓app里,uni.chooseImage无回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这需要Android app对webview进行设置,需要原生工程那边修改。
还有一种方式是使用uni小程序sdk,这个sdk里的webview已经被我们设置好了
更多关于uni-app 打包的h5嵌入到安卓app里,uni.chooseImage无回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html
原生那边估计是不会改了,不是我们写的,请问第二种怎么弄呢
回复 1***@qq.com: 我这app也是用uni开发的,原生的我能处理,问题是这unapp开发的app咋整?
遇到同样的问题了,  app也是用uni开发打包的,使用的webview, 还需要使用uni小程序么?
如果仍需要用的话怎么使用uni小程序sdk?
在将 uni-app 打包的 H5 页面嵌入到安卓 APP 中时,如果遇到 uni.chooseImage 无回调的问题,通常可能是由权限设置、调用方式或环境差异引起的。以下是一些可能帮助解决问题的代码示例和检查点:
1. 确认权限配置
首先,确保在安卓 APP 中已经正确配置了访问存储的权限。在 AndroidManifest.xml 中添加以下权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
对于 Android 6.0 及以上版本,还需在运行时请求权限。以下是一个请求存储权限的简单示例(假设使用 Android 原生代码):
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE_STORAGE_PERMISSION);
}
2. uni-app 代码示例
确保在 uni-app 中调用 uni.chooseImage 的方式是正确的。以下是一个基本的调用示例:
uni.chooseImage({
    count: 9, // 默认9
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
    success: function (res) {
        console.log('选择图片成功:', res.tempFilePaths);
    },
    fail: function (err) {
        console.error('选择图片失败:', err);
    }
});
3. 调试与日志
在 fail 回调中添加详细的错误日志可以帮助定位问题:
fail: function (err) {
    console.error('选择图片失败,错误信息:', err.errMsg, '错误代码:', err.errCode);
}
4. 环境检查
- 确保嵌入的 H5 页面在 WebView 中正确加载。
 - 检查 WebView 是否支持必要的 HTML5 和 JS API。
 - 如果是在某些特定的 WebView 组件中(如某些第三方库),可能需要额外的配置来支持文件选择功能。
 
5. 跨域问题
如果图片选择涉及跨域请求,确保服务器设置了正确的 CORS 策略。
通过上述步骤,通常可以定位并解决 uni.chooseImage 无回调的问题。如果问题依旧存在,建议进一步检查嵌入 H5 的 WebView 组件的具体实现和配置。
        
      
                    
                  
                    
