前端解析ipa、apk安装包信息 —— app-info-parser

2018-11-08 admin

背景

最近公司内部的一个管理安装包的平台准备进行重构,之前安装包上传的姿势是这样的

捡肥皂

不好意思,放错了,是这样的:

  1. 前端选择ipa或者apk文件上传到后端
  2. 后端解析出安装包的名称、版本号等信息之后再上传到存储云
  3. 后端将安装包存储url、名称、版本号等保存到数据库

这个姿势有什么问题呢?很明显,太磨叽了。肥皂,哦不,安装包需要经过两次网络传输:从前端传到后端再传到存储云。安装包一般体积都不小,两次传输会浪费很长时间。

那,怎么快点捡到肥皂防止被 gang ?考虑一下这个姿势

安全捡肥皂

不好意思,又放错了,是这样的:

  1. 前端选择ipa或者apk文件
  2. js解析安装包的名称、版本号
  3. 将安装包直传到存储云,上传成功的回调中将安装包url、名称、版本号发送给后端

安装包只需要经过一次传输,另一次则是可以忽略不计的请求

因为捡肥皂时间短,出事被gang的几率也会小很多(逃

安利正式开始

安装

npm install app-info-parser
// or yarn
yarn add app-info-parser

使用

在node端使用:

const AppInfoParser = require('app-info-parser')
const parser = new AppInfoParser('../packages/xxx.apk') // or xxx.ipa
parser.parse().then(result => {
  console.log('app info ----> ', result)
}).catch(err => {
  console.log('err ----> ', err)
})

在浏览器使用(配合打包工具使用):

<!-- html -->
<input type="file" name="file" id="file" onchange="fileSelect()">
// js
const AppInfoParser = require('app-info-parser')
function fileSelect () {
  const files = document.getElementById('file').files
  const parser = new AppInfoParser(files[0])
  parser.parse().then(result => {
    console.log('app info ----> ', result)
  }).catch(err => {
    console.log('err ----> ', err)
  })
}

最后

源码地址:https://github.com/chenquincy…

我没有在要star(严肃脸)

最后的最后

深圳大疆创新长期招收前端(可内推),欢迎投递简历到 mail@quincychen.cn

附招聘官网:大疆创新招聘官网

原文链接:https://segmentfault.com/a/1190000016949047

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-44894.html

文章标题:前端解析ipa、apk安装包信息 —— app-info-parser

相关文章
HTML5渐行渐近 APP还能走多远
鎽樿�侊細浠讳綍浜嬬墿閮界洓鏋佽€岃“锛孉PP涔熶笉渚嬪�栥€傚湪鍙栧緱杈夌厡鎴愮哗鐨勫悓鏃讹紝APP涔熷悓鏍烽潰涓寸潃璇稿�氶毦浠ラ€捐秺鐨勯殰纰嶃€� 鍦ㄧ粡鍘嗕簡闀胯揪8骞寸殑闀胯窇鍚庯紝HTML5瑙勮寖缁堜簬鐡滅啛钂傝惤銆佹�e紡瀹...
2015-11-12
前端工程师应该具备的三种思维
如果你是一个天才等级的工程师(马上可以离开),可以独立完成一个很多事情,你可以是一个怪咖,因为我相信没有一个人不会不佩服你。但现实归现实,多数人都不是天才,而我们在职场上也不是单打独斗,我们需要团队合作,需要协调和配合,需要考虑除了代码以外...
2016-01-13
JavaScript包装对象
一切皆对象,即便是三种原始类型的值——数值、字符串、布尔值,在一定条件下,也会自动转为对象,也就是原始类型的“包装对象”。 看如下代码: var s=&#x27;www.javascriptcn.com&#x27;;&#x2F;&#x2F;...
2015-11-11
梳理前端开发使用eslint-prettier检查和格式化代码
问题痛点 在团队的项目开发过程中,代码维护所占的时间比重往往大于新功能的开发。因此编写符合团队编码规范的代码是至关重要的,这样做不仅可以很大程度地避免基本语法错误,也保证了代码的可读性。 对于代码版本管理系统(svn 和 git或者其他)...
2018-05-07
windows 下安装nodejs 环境变量设置
要设置两个东西,一个是PATH上增加node.exe的目录C:\Program Files\nodejs,一个是增加环境变量NODE_PATH,值为C:\Program Files\nodejs\node_modules 一、下载 去nod...
2017-03-18
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
1.bootstrap-table 单击单行选中 $(&#x27;#gzrwTable&#x27;).on(&#x27;click-row.bs.table&#x27;, function(e, row, $element) { $(&#x...
2017-02-17
JavaScript中的call方法和apply方法使用对比
方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明: call 方法可以用来代替另一个对象调用一个方法。c...
2017-03-29
[翻译]基于Webpack4使用懒加载分离打包React代码
原文地址:https://engineering.innovid.com/code-splitting-using-lazy-loading-with-react-redux-typescript-and-webpack-4-3ec601...
2018-03-11
五个值得尝试的前端开发工具
在过去的几年时间里,出现了许多全新的网页应用程序,不过,由于应用程序的功能越来越丰富,也导致了前端开发的复杂度大幅增加。 现在也有不少前端开发工具,比如Backbone和EmberJS框架都能提供稳定的App开发解决方案。同时,Javasc...
2015-12-23
angular+ionic 的app上拉加载更新数据实现方法
第一步,首先需要在&lt;ion-content&gt;标签里面加入标签&lt;ion-infinite-scroll ng-if=&quot;hasmore&quot; on-infinite=&quot;loadMore()&quot;...
2017-03-07
回到顶部