uni-app
从本地相册选择图片或使用相机拍照,使用方法:uni.chooseImage
详见官网。
各位开启相机/相册
代码也加了,其他业务逻辑代码也搞了。
sourceType: ['album', 'camera'],
真机调试时uni-app
项目选择发行->原生App-制作应用wgt包
,在iOS项目
和Android项目
中通过放到后台远程获取加载到本地或者直接本地接入后分别,苹果机型运行后可以正常调用相机/相册
并选择图片并上传成功,但是Android
某些机型相册
调用没有问题,点击相机
调用无反应即出现调用失败问题。
类似这种问题若出现要先去uni-app
官网搜索,一般你能遇到的问题,别人也遇到了,或早或晚而已,官网一般会给你答案,至少会明确问题方向。
原因是FileProvide 未配置,需在application节点下添加provider节点离线打包Android 10上无法启动相机
<provider
android:name="io.dcloud.common.util.DCloud_FileProvider"
android:authorities="${apk.applicationId}.dc.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/dcloud_file_provider" />
</provider>
其中,${apk.applicationId}
须替换成应用的包名。比如com.xxxx.xxxx
那么我在Android项目
原生里AndroidManifest.xml
配置如下
<provider
android:name="io.dcloud.common.util.DCloud_FileProvider"
android:authorities="com.xxxx.xxxx.dc.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/dcloud_file_provider" />
</provider>
再次运行后,Android
某些机型相机
调用成功。