使用uniapp怎么开发一个桌面应用呢?
其实最主要的就是添加一下配置:
《action android:name="android.intent.action.MAIN"/》
《category android:name="android.intent.category.LAUNCHER"/》
《category android:name="android.intent.category.HOME"/》
《category android:name="android.intent.category.DEFAULT"/》
那么如何去配置呢?
首先使用uniapp云打包,拿到apk文件,在使用反编译工具编辑apk。
得到AndroidManifest.xml文件,在此文件第一个activity便签下添加以上的配置。
添加好之后,再次编译文件到apk。
这样一个launcher程序就写好了。
按照以下网址使用,编译apk,和回编apk
反编译apk:https://juejin.cn/post/6981734318791983135
回编译apk:https://blog.csdn.net/u013265344/article/details/85004002
反编译的时候有的时候xml文件不对,使用:
java -jar apktool.jar d -f .\app.apk -o serial --only-main-classes
附加:
launcher开发出来之后,有些用户场景需要去监听app添加、卸载。
在App.vue文件onLaunch下添加以下代码即可。
//监听应用的添加
var receiver;
var mainActivity = plus.android.runtimeMainActivity();
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
var filter = new IntentFilter();
var Intent = plus.android.importClass('android.content.Intent');
plus.android.importClass('android.content.BroadcastReceiver');
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
onReceive: function(context, intent) { //实现onReceiver回调函数
plus.android.importClass(intent);
var packageName =intent.getDataString(); //包名
var action = intent.getAction(); //监听的方法
// mainActivity.unregisterReceiver(receiver); 关闭监听
}
});
filter.addDataScheme("package");
// filter.addAction(Intent.ACTION_PACKAGE_ADDED); //监听app添加
// filter.addAction(Intent.ACTION_PACKAGE_REMOVED); //监听app卸载
filter.addAction(Intent.ACTION_PACKAGE_REPLACED); //监听app升级安装
mainActivity.registerReceiver(receiver, filter); //注册监听
//监听应用的添加结束
以下图片为AndroidManifest.xml文件中的launcher配置