获取APK包名
Get APK package name
我可以从JS上传的文件中获得APK包名称吗?
我使用HTML5上传文件,我想获得所选文件的包名。
<input type="file"/>
有可能吗?
最后,我使用了惊人的JSZip库来获取AndroidManifest.xml内容,并使用以下代码将其内容转换为可搜索的字符串:
function getPackageName(apkBlobAsByteArray) {
// Unzipping zip blob
var zip = new JSZip(apkBlobAsByteArray);
// Getting AndroidManifest.xml and decompress it
var androidCompress = zip.files['AndroidManifest.xml'];
var androidNonCompress = androidCompress._data.getContent();
// Reading to content to a searchable string
var packageNameArray = [];
var textArray = String(androidNonCompress).split(',');
for (var i = 0, len = textArray.length; i < len; i++) {
if (textArray[i] !== 0) {
packageNameArray.push(textArray[i]);
}
}
// Searching for package name
var startPattern = 'manifest';
var androidText = String.fromCharCode.apply(null, packageNameArray).toString().toLowerCase();
var packageName = androidText.substring(androidText.indexOf(startPattern) +
startPattern.length, androidText.indexOf('uses'));
// Remove version from package name
packageName = packageName.substring(0, packageName.indexOf(packageName.match(/'d+/)[0]));
return packageName;
}
现在你可以从https://github.com/chenquincy/app-info-parser使用app-info-parser.
在你的浏览器中,你可以使用JS交付包含一个脚本标签指向https://cdn.jsdelivr.net/gh/chenquincy/app-info-parser/dist/app-info-parser.min.js。
代码可以是:
var parser = new AppInfoParser(files[0])
parser.parse().then(function (result) {
console.log('app info ----> ', result);
console.log('icon base64 ----> ', result.icon);
}).catch(function (err) {
console.log('err ----> ', err);
});
相关文章:
- 在哪里使用名为“;冻结”;
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 在underscorejs模板中使用闭包
- AngularJS-在JSON选择器中使用变量名
- TableExport jquery插件:文件名和扩展名问题
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- 从html创建一个指令,该指令按类名应用函数
- JS编译器/包管理器,用于版本控制
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- 如何在不同的url angularjs上更改类名
- 将所有具有特定类名的文本框相加
- 将输入名称为“”的所有值相加;TotalInline[]”;
- setTimeout可以与闭包内的函数一起使用吗
- 命令行中的Uglify js;不要弄乱变量名
- 数据绑定:'系统Char'不包含名为'xxxxx'
- node.js-在闭包时使用相同的变量名
- React原生android无法加载js捆绑包:index.android.js中的更改可以'在apk中看不到
- 获取APK包名
- 是否有可能获得给定闭包正在运行的函数名
- 在Javascript中验证Java包名的正则表达式