关于uniapp开发app获取手机通讯录,并支持纯前端excel解析导入通讯录

前言:这是蛮久之前的一个项目了,当时的需求是app获取手机通讯录并可以进行操作,(我这里只针对安卓开发不考虑ios,不知道是否兼容)我第一想法就是使用插件,但是找了一会发现没有开箱即用的插件,于是只能用HTML5 Plus规范(https://www.html5plus.org/doc/zh_cn/contacts.html)手搓……

HTML5 Plus规范里关于通讯录增删改查api可以支持app端,到目前为止进展顺利,但很快坑就来了,我还有一个需求是支持纯前端excel导入通讯录,我的思路很多,什么xlsjs、lucksheet等等,埋坑ing……

然后我就卡在一个意想不到的环节,解析excel需要先选择获取excel,由于之前通讯录使用了HTML5 Plus,于是我顺手就用了IO模块获取文件的api,结果就是用不了,因为我压根不知道文件路径,也就是说还要有一个获取文件路径的操作,然后我就用官方的uni.chooseFile,官方文档说不支持app端,让开发者去插件市场找,我在插件市场里面不断试错,找到一个能用的插件:https://ext.dcloud.net.cn/plugin?id=14059

直接上代码:

 可以看到我使用这个原生插件获取到文件路径了(不要忘了在 "manifest.json -> APP原生插件配置" 内添加本插件,否则云打包(离线打包)不会生效),再配合plus.io的api和xlsx.js操作解析excel,可以看到我使用XLSX.read读取excel的时候也踩了很多坑,最终type: 'base64'成功将excel解析成json格式!!!

最后我再推荐一个好用的tree插件(当时用有一点小毛病,也和作者讨论过,不知道他现在有没有更新,不过自己稍微改一改就能用了):next-tree(超强树选择器、树组件、树插件、无限级联树、单选树、多选树、自定义样式树、树形选择 - DCloud 插件市场,至此踩坑结束。

最后附上效果图以及excel表格格式:

 

 

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值