zzhi_bo
zzhi_bo
  • 发布:2021-12-07 10:51
  • 更新:2023-11-03 14:26
  • 阅读:2558

uniapp 开发launcher

分类:uni-app

使用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配置

1 关注 分享
M***@163.com

要回复文章请先登录注册

davidtall

davidtall

这样处理后APP还支持热更新吗?
2023-11-03 14:26
小程序开发用户

小程序开发用户

编译apk,和回编apk成功运行到平板显示黑屏了
2022-09-01 08:49
zzhi_bo

zzhi_bo (作者)

回复 2***@qq.com :
找到属性为android:name="io.dcloud.PandoraEntry" 的 activity 标签,该标签下有两个intent-filter标签,在第一个intent-filter下添加配置launcher的四行代码就行了,最好都加上。
2021-12-22 16:54
2***@qq.com

2***@qq.com

弄了一天才发现问题 回编译 是在 Activity便签的intent-filter节点中添加两行就行了,,,

```category android:name="android.intent.category.HOME"```
```category android:name="android.intent.category.DEFAULT"```
2021-12-22 15:36
2***@qq.com

2***@qq.com

你好,问一下,反编译和回编译弄一个就可以了是嘛,还是这两个都要弄
2021-12-21 16:20
1***@qq.com

1***@qq.com

我们做了一款智能家居管理app,想要做成launcher,感谢作者的分享
2021-12-14 20:46
zzhi_bo

zzhi_bo (作者)

配置
<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"/>
2021-12-07 10:52