ios开发-调用系统相册(原生)

ios开发-调用系统相册(原生),第1张

1、首先要开启app对相册获取的权限,找到app对应的Info.plist文件,在Key值一栏填入:Privacy - Photo Library Usage Description,然后在Value一栏填入“此App需要您的同意才能读取相册”。

这样,再用户同意之后,我们的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,它能让应用开发者访问用户的摄像头或内置相机。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6109287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存