当前位置: 首页 > news >正文

uniapp接入安卓端极光推送离线打包

1. 极光key准备 去极光推送开放平台直接注册就好

申请时需要注意离线打包包名

2.uniapp离线包准备

2.1注意两个都需要下载

下载地址:极光推送 JPush 官方 SDK
下载地址:极光推送 JCore 官方 SDK

2.2两个离线包放入uniapp根目录的nativeplugins文件夹下没有就创建

在这里插入图片描述

2.3 manifest.json模块中选原生插件选中,最下面那个不用勾那是商米一体机打印插件

在这里插入图片描述
切换到安卓模块配置 勾选Push但是切记下面的俩不能勾选
在这里插入图片描述

2.4切换到源码模式配置极光key以及打包包名

在这里插入图片描述
在这里插入图片描述

2.5编写代码初始化极光在App.vue中

// #ifdef APP-PLUS
var jpushModule = uni.requireNativePlugin('JG-JPush');
// #endif
//在onMounted中或者onLaunch中
// #ifdef APP-PLUS
jpushModule.initJPushService();
jpushModule.setLoggerEnable(true);
jpushModule.addConnectEventListener((result) => {console.log(result, 'addConnectEventListener');let connectEnable = result.connectEnable;uni.$emit('connectStatusChange', connectEnable);
});jpushModule.addNotificationListener((result) => {let notificationEventType = result.notificationEventType;let messageID = result.messageID;let title = result.title;let content = result.content;let extras = result.extras;console.log('addNotificationListener:', result);// uni.showToast({//     icon: 'none',//     title: JSON.stringify(result),//     duration: 3000// });if (notificationEventType == 'notificationOpened') {// uni.navigateTo({//     url: '/pages/index/jump'// });}
});jpushModule.addCustomMessageListener((result) => {let type = result.type;let messageType = result.messageType;let content = result.content;console.log(result, 'addCustomMessageListener');// uni.showToast({//     icon: 'none',//     title: JSON.stringify(result),//     duration: 3000// });
});
jpushModule.addInMessageListener((result) => {// uni.showToast({//     icon: 'none',//     title: JSON.stringify(result),//     duration: 3000// });console.log(result, 'addInMessageListener');
});
jpushModule.addLocalNotificationListener((result) => {let messageID = result.messageID;let title = result.title;let content = result.content;let extras = result.extras;console.log(result, 'resultaddLocalNotificationListener');// uni.showToast({//     icon: 'none',//     title: JSON.stringify(result),//     duration: 3000// });
});
//#endif

2.6准备工作完成开始打包放入安卓项目目录

选择发行–app本地打包-完成之后将文件放到离线打包项目中src/main/assets/apps目录下
uniapp离线打包还需其他配置具体参照里面有现成的例子直接拿过来根据教程改巴改巴
uniapp离线打包官网教程

3.android studio准备工作

3.1将从上面下载下来的两个插件目录以及子目录中的jar包跟arr包全部放入安卓目录下的libs目录中。注意是全部别丢包!!!

3.2在assets目录下创建dcloud_uniplugins.json文件具体原因看官网

Android 离线打包使用插件

//编写
{"nativePlugins": [{"plugins": [{"type": "module","name": "JG-JCore","class": "cn.jiguang.uniplugin_jcore.JCoreModule"}],"integrateType": "aar","minSdkVersion": "19","permissions": [],"abis": ["armeabi-v7a","arm64-v8a","x86"],"parameters": {"JPUSH_APPKEY_ANDROID": {"des": "[Android]极光portal配置应用信息时分配的AppKey","key": "换成极光申请的key"},"JPUSH_CHANNEL_ANDROID": {"des": "[Android]用于统计分发渠道,不需要可填默认值developer-default","key": "developer-default"}}},{"plugins": [{"type": "module","name": "JG-JPush","class": "cn.jiguang.uniplugin_jpush.JPushModule"}],"integrateType": "aar","minSdkVersion": "19","permissions": ["${applicationId}.permission.JPUSH_MESSAGE","android.permission.INTERNET","android.permission.ACCESS_NETWORK_STATE","android.permission.POST_NOTIFICATIONS","com.huawei.android.launcher.permission.CHANGE_BADGE","com.vivo.notification.permission.BADGE_ICON","com.hihonor.android.launcher.permission.CHANGE_BADGE","android.permission.VIBRATE","android.permission.ACCESS_COARSE_LOCATION","android.permission.ACCESS_FINE_LOCATION","android.permission.ACCESS_BACKGROUND_LOCATION","android.permission.READ_PHONE_STATE","android.permission.QUERY_ALL_PACKAGES","android.permission.GET_TASKS","android.permission.ACCESS_WIFI_STATE","android.permission.WRITE_EXTERNAL_STORAGE","android.permission.READ_EXTERNAL_STORAGE","${applicationId}.permission.MIPUSH_RECEIVE","com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE","com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE"]}]
}

3.3AndroidManifest.xml目录下编写

都是权限
在manifest层级下
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.JPUSH_MESSAGE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
application层级下
<!-- 这是uniapp离线打包申请的key-->
<meta-dataandroid:name="dcloud_appkey"android:value="更换dcloud_appkey" />
<!-- since 3.3.0 Required SDK 核心功能-->
<!-- 可配置android:process参数将PushService放在其他进程中 -->
<!--User defined.  For test only 继承自cn.jpush.android.service.JCommonService-->
<service android:name="io.dcloud.feature.jpush.PushService"android:process=":pushcore" android:exported="true"><intent-filter><action android:name="cn.jiguang.user.service.action" /></intent-filter>
</service><meta-data android:name="dcloud_uninview_background"android:value="true"/><!-- User defined.  For test only  用户自定义接收消息器,3.0.7开始支持,目前新tag/alias接口设置结果会在该广播接收器对应的方法中回调-->
<!--since 3.3.0 接收JPush相关事件-->
<receiver android:name="io.dcloud.feature.jpush.PushMessageReceiver" android:exported="true"><intent-filter><action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" /><category android:name="换成安卓包名即applicationId"></category></intent-filter>
</receiver>
<receiverandroid:name="io.dcloud.feature.jpush.JPushReceiver"android:enabled="true"android:exported="false"><intent-filter><action android:name="cn.jpush.android.intent.REGISTRATION" /> <!-- Required 用户注册SDK的 intent --><action android:name="cn.jpush.android.intent.UNREGISTRATION" /><action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!-- Required 用户接收SDK消息的 intent --><action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <!-- Required 用户接收SDK通知栏信息的 intent --><action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!-- Required 用户打开自定义通知栏的 intent --><action android:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK" /> <!-- Optional 用户接受 Rich Push Javascript 回调函数的intent --><action android:name="cn.jpush.android.intent.CONNECTION" /> <!-- 接收网络变化 连接/断开 since 1.6.3 --><category android:name="${JPUSH_PKGNAME}" /></intent-filter>
</receiver>
<meta-dataandroid:name="JPUSH_APPKEY"android:value="换成自己的极光key"/>

3.4build.gradle中编写ndk选项以及manifestPlaceholders

在这里插入图片描述

3.5在src/main/assets/data/dcloud_properties中加入一行

<feature name="Push" value="io.dcloud.feature.jpush.JPushService"></feature>

完事直接执行打包

注意事项

uniapp离线打包现在需要申请key(uniapp教程中有),里面需要sha1值跟sha256,
android sudio中可以创建签名使用命令即可得到签名的sha1跟256(自行百度吧)

http://www.dtcms.com/a/589008.html

相关文章:

  • 宁波模板建站定制网站建立企业网站的流程
  • hotspot vm 参数解析
  • Titiler无需切片即可实现切片形式访问影像
  • 通过数学变换而不是组装来构造软件
  • Week 24: 深度学习补遗:Vision Transformer (ViT) 复现
  • 做的好的茶叶网站wordpress百度百科
  • paho mqtt c 指定tls加密算法安全套件
  • 2025年下半年网络工程师基础知识真题及答案解析
  • 网站怎么做电脑系统下载文件安装wordpress素锦
  • 解析 CodexField 五大核心模块:构建下一代链上内容资产基础设施
  • 如何在命令行启用Dev-C++的调试模式?
  • handler机制原理面试总结
  • 人工智能备考——1.2.1-1.2.5总结
  • SQL50+Hot100系列(11.9)
  • vue-router相关理解
  • 怎么做才能设计出好的网站网站充值这么做
  • Qt QWidget点击信号全解析:从基础交互到高级实战
  • 【Spark】操作记录
  • Vue 项目实战《尚医通》,医院详情菜单与子路由,笔记17
  • Kettle 小白入门指南:从A表到B表的数据清洗实战
  • 莱芜正规的企业建站公司东莞专业网站建设公司
  • 尝试性解读 Hopper 和 BlackWell 架构的硬件缓存一致性及其深远影响
  • 深入解析OpenHarmony USB DDK通信机制:从架构到实战
  • 1.8 分块矩阵
  • 2025年游戏手机市场发展趋势与硬件性能全面解析
  • 一般角度的旋转矩阵的推导
  • tomcat建网站个人域名申请的方法
  • 实训11 正则表达式
  • Electron 如何判断运行平台是鸿蒙系统(OpenHarmony)
  • C++ tuple 学习笔记(笔误请指出)