这样,再用户同意之后,我们的app就能拿到对相册访问的权限了。
2、找到对应控制器的.m文件,在文件中创建一个全局的UIImagePickerController对象和一个UIImageView对象,我的是在ViewController.m文件中创建的。
3.初始化刚才添加imageView和imagePickerVC,初始化时,同时设置imagePickerVC的delegate和图片是否允许编辑,我习惯在懒加载中初始化
记得在@interface添加遵循的协议
4.在viewDidLoad方法中初始化一个button,同时将刚才的imageView和button一起添加到self.view中
5.添加button点击时触发的方法
6.设置UIimagePickerController的代理方法,用来获取我们打开相册后选择的图片
这样,就能打开系统的相册了
下面是效果图:
在开发中有时候会用到H5调用本地图片或者相机,像第三方的实名认证,在线客服等等都需要上传图片。H5中只需要通过 <input>调用即可,ios是可以的实现的,不需要自己处理,除非客户端压缩图片,但是Android中需要自己处理,比较坑,本文记录H5调用本地图片或者相机的实现过程以及遇到的问题。
H5主要是通过 input 标签来获取图片
通过 WebView 加载 h5 页面,监听 WebView 对应的方法,实现自己的逻辑。
当点击 input 标签的时候会调用 WebChromeClient 的 onShowFileChooser() 方法(5.0+)或者 openFileChooser() 方法(3.0+)在改方法中处理自己逻辑,这里是d出一个原生的选择框,选择从相册还是拍照获取图片。
拍照和打开相册功能封装到了 PhotoUtils 工具类中了。
file_paths.xml
从相册中选择
onActivityResult() 方法处理
这里使用 Luban 压缩以后再上传的
你给的网页用的是 <input accept="image/*" type="file">,在IOS端点击时会提示选择图片或相机,安卓端要看浏览器对这两个属性的优化,部分浏览器会直接跳转到资源管理器,优化做得好的可以直接提示选择相册或相机。
移动设备和桌面电脑上的客户端API起初并不是同步的。最初总是移动设备上先拥有某些功能和相应的API,但慢慢的,这些API会出现在桌面电脑上。其中一个应用接口技术就是getUserMedia API,它能让应用开发者访问用户的摄像头或内置相机。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)