文章目录

  • 一、先在uniapp的插件市场下载
  • 二、本地插件配置(可在控制台看到打印信息,方便测试)
    • 1.配置本地插件信息
      • 1.1 厂商信息需要在各个厂商注册后,然后填写,用处为:可在离线时,发送通知。
      • 1.2 在本地插件的page.json中,配置安卓和ios的[appKey](https://www.jiguang.cn/portal/#/dev/newOverview)和厂商id(若不配置,仅支持在线通知):
    • 2.配置manifest.json信息
      • 在manifest.json的源码视图中配置如下信息:
      • 1、2、3步代码保持一致,4、5步填写ios、安卓对应的appkey
      • 7、8、11、12配置安卓和ios的appKey,9,10配置安卓的包名和ios的bundle_id
      • 下面的`JG-JPush`配置相同,就不一一列举。
    • 3.配置自定义基座包(Android、iOS)
    • 4.运行测试
  • 三、离线打包集成(安卓,官方参考文档)
  • 四、官方demo和API文档

一、先在uniapp的插件市场下载

点击直达

二、本地插件配置(可在控制台看到打印信息,方便测试)

1.配置本地插件信息

1.1 厂商信息需要在各个厂商注册后,然后填写,用处为:可在离线时,发送通知。

1.2 在本地插件的page.json中,配置安卓和ios的appKey和厂商id(若不配置,仅支持在线通知):

2.配置manifest.json信息

在manifest.json的源码视图中配置如下信息:

1、2、3步代码保持一致,4、5步填写ios、安卓对应的appkey

 /* android打包配置 */"android" : {"permissions" : ["<uses-feature android:name=\"android.hardware.camera\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.CALL_PHONE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"],"abiFilters" : [ "armeabi-v7a", "x86" ]},/* ios打包配置 */"ios" : {"privacyDescription" : {"NSLocationAlwaysAndWhenInUseUsageDescription" : "This app requires location services to work","NSLocationAlwaysUsageDescription" : "This app requires location services to work","NSLocationWhenInUseUsageDescription" : "This app requires location services to work"},"UIBackgroundModes" : "remote-notification,voip,fetch,location","idfa" : true},/* ios打包配置 */"sdkConfigs" : {"ad" : {},"push" : {},"geolocation" : {},"maps" : {}},

7、8、11、12配置安卓和ios的appKey,9,10配置安卓的包名和ios的bundle_id

下面的JG-JPush配置相同,就不一一列举。

再放一段参考代码:

    "nativePlugins" : {"JG-JCore" : {"JPUSH_APPKEY_ANDROID" : "appkey注册时获取","JPUSH_APPKEY_IOS" : "appkey注册时获取","JPUSH_CHANNEL_IOS" : "developer-default","JPUSH_CHANNEL_ANDROID" : "developer-default","__plugin_info__" : {"name" : "JG-JCore","description" : "极光推送JCore插件","platforms" : "Android,iOS","url" : "","android_package_name" : "com.xxx.com","ios_bundle_id" : "com.xxxaaa.com","isCloud" : false,"bought" : -1,"pid" : "","parameters" : {"JPUSH_APPKEY_ANDROID" : {"des" : "appkey注册时获取","key" : "JPUSH_APPKEY","value" : "appkey"},"JPUSH_APPKEY_IOS" : {"des" : "appkey注册时获取","key" : "JCore:APP_KEY","value" : "appkey"},"JPUSH_CHANNEL_IOS" : {"des" : "developer-default","key" : "JCore:CHANNEL","value" : "developer-default"},"JPUSH_CHANNEL_ANDROID" : {"des" : "developer-default","key" : "JPUSH_CHANNEL","value" : "developer-default"}}}},"JG-JPush" : {"JPUSH_XIAOMI_APPKEY" : "","JPUSH_MEIZU_APPID" : "","JPUSH_OPPO_APPSECRET" : "","JPUSH_OPPO_APPKEY" : "","JPUSH_ADVERTISINGID_IOS" : "","JPUSH_MEIZU_APPKEY" : "","JPUSH_OPPO_APPID" : "","JPUSH_DEFAULTINITJPUSH_IOS" : "","JPUSH_VIVO_APPKEY" : "","JPUSH_VIVO_APPID" : "","JPUSH_ISPRODUCTION_IOS" : "false","JPUSH_XIAOMI_APPID" : "","JPUSH_HUAWEI_APPID" : "","__plugin_info__" : {"name" : "JG-JPush","description" : "极光推送Hbuilder插件","platforms" : "Android,iOS","url" : "","android_package_name" : "com.xxx.com","ios_bundle_id" : "com.xxxaaa.com","isCloud" : false,"bought" : -1,"pid" : "","parameters" : {"JPUSH_XIAOMI_APPKEY" : {"des" : "","key" : "XIAOMI_APPKEY","value" : ""},"JPUSH_MEIZU_APPID" : {"des" : "","key" : "MEIZU_APPID","value" : ""},"JPUSH_OPPO_APPSECRET" : {"des" : "","key" : "OPPO_APPSECRET","value" : ""},"JPUSH_OPPO_APPKEY" : {"des" : "","key" : "OPPO_APPKEY","value" : ""},"JPUSH_ADVERTISINGID_IOS" : {"des" : "","key" : "JPush:ADVERTISINGID","value" : ""},"JPUSH_MEIZU_APPKEY" : {"des" : "","key" : "MEIZU_APPKEY","value" : ""},"JPUSH_OPPO_APPID" : {"des" : "","key" : "OPPO_APPID","value" : ""},"JPUSH_DEFAULTINITJPUSH_IOS" : {"des" : "false","key" : "JPush:DEFAULTINITJPUSH","value" : ""},"JPUSH_VIVO_APPKEY" : {"des" : "","key" : "com.vivo.push.api_key","value" : ""},"JPUSH_VIVO_APPID" : {"des" : "","key" : "com.vivo.push.app_id","value" : ""},"JPUSH_ISPRODUCTION_IOS" : {"des" : "false","key" : "JPush:ISPRODUCTION","value" : ""},"JPUSH_XIAOMI_APPID" : {"des" : "","key" : "XIAOMI_APPID","value" : ""},"JPUSH_HUAWEI_APPID" : {"des" : "","key" : "com.huawei.hms.client.appid","value" : ""}}}}}

3.配置自定义基座包(Android、iOS)

iOS打包勾选上后修改bundle id并且上传证书即可

4.运行测试

选择自定义基座–>选择与电脑连接的手机设备(或者模拟器)–>点击运行

三、离线打包集成(安卓,官方参考文档)

ios可参考这个博客

1、生成离线打包资源
1.在菜单栏中选中 “发行” --> “原生App-本地打包” --> “生成本地打包App资源”

2.在项目目录下的"unpackage" --> "resources"目录下会生成资源文件

2、下载离线打包SDK
2.1 下载地址
https://nativesupport.dcloud.net.cn/AppDocs/download/android
注意:SDK版本需要与HbuilderX版本对应才能正常运行项目,否则可能造成兼容问题。
2.2 查看HbuilderX版本
在菜单栏中选点击 “帮助”–>“关于”,查看弹窗即可看到版本号

2.3 下载SDK
下载跟自己HBuilderX版本号相同的SDK

3、离线打包工程配置
3.1 打开 UniPlugin-Hello-AS 工程
使用Android Stuido打开UniPlugin-Hello-AS工程

3.2 导入离线打包资源
将项目中app/src/main/assets/apps/目录下的文件删除,并且替换为HBuilderX中生成的离线打包资源

3.3 修改dcloud_control.xml
将dcloud_control.xml中的appid修改成与离线打包资源文件夹同名

3.4 删除无用模块

4、集成推送插件
4.1 修改applicationId
将app/build.gradle文件中的applicationId修改为认证时申请的包名

将AndroidManifest.xml中的package修改为认证时申请的包名

4.2 配置打包签名文件
在app/build.gradle中的android{}里面添加签名信息(使用自己的签名文件或者云端证书都可)

 signingConfigs {release {keyAlias 'push'keyPassword '123456'storeFile file('./push.jks')storePassword '123456'}debug {keyAlias 'push'keyPassword '123456'storeFile file('./push.jks')storePassword '123456'}}

在app/build.gradle中的buildTypes{}里面添加打包时指定的签名文件

buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}debug {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'signingConfig signingConfigs.debug}
}

4.3 配置插件信息
打开dcloud_uniplugins.json文件填写插件信息
插件信息在HBuilderX项目nativeplugins/JG-JCore/package.json、nativeplugins/JG-JPush/package.json中查看

{"nativePlugins": [{"plugins": [{"type": "module","name": "JG-JCore","class": "cn.jiguang.uniplugin_jcore.JCoreModule"},{"type": "module","name": "JG-JPush","class": "cn.jiguang.uniplugin_jpush.JPushModule"}],"integrateType": "aar","minSdkVersion": "16"}]
}

4.4 导入推送插件依赖库
将JPush_Hbuilder_Demo中的依赖包复制到UniPlugin-Hello-AS项目中的app/libs目录下

4.5 配置极光和厂商参数
注意:以下参数替换为自己的参数

manifestPlaceholders = [JPUSH_PKGNAME : "pub.kilo.thirdpush",JPUSH_APPKEY  : "xx", //JPush 上注册的包名对应的 Appkey.JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.XIAOMI_APPKEY : "MI-xx",//小米平台注册的appkeyXIAOMI_APPID  : "MI-xx",//小米平台注册的appidOPPO_APPKEY   : "OP-xx", // OPPO平台注册的appkeyOPPO_APPID    : "OP-xx", // OPPO平台注册的appidOPPO_APPSECRET: "OP-xx",//OPPO平台注册的appsecretVIVO_APPKEY   : "xx", // VIVO平台注册的appkeyVIVO_APPID    : "xx", // VIVO平台注册的appidMEIZU_APPKEY  : "MZ-xx", // 魅族平台注册的appkeyMEIZU_APPID   : "MZ-xx", // 魅族平台注册的appid
]
<meta-dataandroid:name="JPUSH_APPKEY"android:value="${JPUSH_APPKEY}" />
<meta-dataandroid:name="JPUSH_CHANNEL"android:value="${JPUSH_CHANNEL}" /><meta-dataandroid:name="XIAOMI_APPKEY"android:value="${XIAOMI_APPKEY}" />
<meta-dataandroid:name="XIAOMI_APPID"android:value="${XIAOMI_APPID}" /><meta-dataandroid:name="OPPO_APPKEY"android:value="${OPPO_APPKEY}" />
<meta-dataandroid:name="OPPO_APPID"android:value="${OPPO_APPID}" />
<meta-dataandroid:name="OPPO_APPSECRET"android:value="${OPPO_APPSECRET}" /><meta-dataandroid:name="com.vivo.push.api_key"android:value="${VIVO_APPKEY}" />
<meta-dataandroid:name="com.vivo.push.app_id"android:value="${VIVO_APPID}" /><meta-dataandroid:name="MEIZU_APPKEY"android:value="${MEIZU_APPKEY}" />
<meta-dataandroid:name="MEIZU_APPID"android:value="${MEIZU_APPID}" />

4.6 登录开发者中心申请签名
1)开发者需登录 https://dev.dcloud.net.cn/ 申请签名,申请签名成功后会显示 AppKey

2)将步骤 1 获取到的 AppKey 配置到 manifest

4.7 集成华为和FCM
华为和FCM的集成参考以下文档即可
https://www.yuque.com/docs/share/0f6327ce-da8f-488e-824a-7ca53890252d?# 《极光厂商通道集成指南》
解决fcm集成报AndroidX错误的问题

android.useAndroidX=true
android.enableJetifier=true

5、厂商通道点击跳转获取参数问题
(华为/小米/VIVO通道)uri_activity:cn.jiguang.uniplugin_jpush.OpenClickActivity
(OPPO / FCM通道)uri_action: cn.jiguang.uniplugin_jpush.OpenClickActivity

四、官方demo和API文档

官方demo : https://github.com/jpush/jpush-hbuilder-plugin
API文档 :https://github.com/jpush/jpush-hbuilder-plugin/blob/master/doc/API.md

uniapp轻松集成极光推送SDK(本地插件集成和离线打包两种)相关推荐

  1. 跨平台应用开发进阶(八) :uni-app 实现Android原生APP-云打包集成极光推送(JG-JPUSH)详细教程

    文章目录 一.前言 二.资源 三.集成 3.1 SDK 引入 3.2 代码集成 3.3 遇到的问题及解决方案 3.3.1 包大小限制 3.3.2 [JS Framework] 当前运行的基座不包含原生 ...

  2. Android第三方SDK集成 —— 极光推送

    前言: 本文前篇,可以帮助朋友们快速集成极光推送.本文后篇,是我自己项目实践的一些总结和心得,应该对读者们还是很有参考价值的,相信读完这篇文章,你会对极光推送有更加深入的理解,而不仅仅只是会集成而已. ...

  3. 跨平台应用开发进阶(十一) :uni-app 实现IOS原生APP-云打包集成极光推送(JG-JPUSH)详细教程

    文章目录 一.前言 二.资源 三.集成 四.遇到的问题及解决措施 4.1 IOS开发者证书无推送权限 4.2 manifest中并没有配置push模块.但云端打包ios就是一直报Code Signin ...

  4. uniapp集成极光推送证书与描述文件申请

    首先需要申请苹果 App ID (App的唯一标识) 申请开发证书(1)(此证书用于HBuilderX打包时使用) 申请好的证书使用在HBuilderX打包时使用,如下图: 申请开发(推送)证书(2) ...

  5. Android 集成极光推送和厂商通道

    JPush 产品简介 Push 是经过考验的大规模 App 推送平台,每天推送消息量级为数百亿条. 开发者集成 SDK 后,可以通过调用 API 推送消息.同时,JPush 提供可视化的 web 端控 ...

  6. 三分钟帮你集成极光推送——和那些可能你不知道的事

    本文简介:本文前篇,可以帮助朋友们快速集成极光推送.本文后篇,是我自己项目实践的一些总结和心得,应该对读者们还是很有参考价值的,相信读完这篇文章,你会对极光推送有更加深入的理解,而不仅仅只是会集成而已 ...

  7. React-Native集成极光推送(Android和IOS)

    React-Native集成极光推送的具体流程如下: 本文选取的是极光官方维护的react-native推送插件,github地址:https://github.com/jpush/jpush-rea ...

  8. Android集成极光推送踩坑(二)升级篇

    转载请标明出处 http://blog.csdn.net/mohan6/article/details/74133186 本文作者:[默寒的博客] 前言 前段时间针对集成极光推送写了篇文章( Andr ...

  9. flutter应用开发中集成极光推送(flutter极光推送第一篇)

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 精通点的可以查看这里 精述 Flutter 从入门实践到开发一个APP之UI基础篇 视频 flutter从入 ...

最新文章

  1. 云时代服务器端工程师必备 CDN 技能包
  2. 从头开始学习深度学习之卷积
  3. 【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
  4. html经典上中下三段的布局设计
  5. Python比对指定目录下的Excel数据(附源码)
  6. SAP HANA Cloud 学习教程之二: 如何往SAP BTP 上 HANA Cloud 实例的数据库表里插入数据
  7. 网络协议文档阅读笔记-Introduction to DTLS(Datagram Transport Layer Security)
  8. python深拷贝_python 深拷贝与浅拷贝的区别
  9. 61笔记本配置_最清晰的笔记本电脑选购推荐,每月更新(2019.5)
  10. linux驱动编写(声卡驱动之asoc移植)
  11. 7种形式的Android Dialog使用举例
  12. 32bit还是64bit
  13. 第四季-专题12-按键驱动程序设计
  14. HDU 5879 Cure -2016 ICPC 青岛赛区网络赛
  15. 李永乐复习全书线性代数 第三章 向量
  16. 蛐蛐播放器 android,蛐蛐五线谱播放器
  17. 如何在html中做超链接,如何在HTML上做一个超链接?
  18. WZOI-359字符串哈希
  19. linux 进入mysql
  20. php web 简单的系统,一个简单的Webmail系统_PHP

热门文章

  1. c语言while中100 95,C语言笔试题100道
  2. 提交恶意代码,这所大学被“封杀”
  3. Python一维列矩阵转换成行矩阵
  4. 神盾特工hive_《神盾局特工》第四季剧情:黛西黑化?
  5. pandas样本分层抽样(可以自己设置每一个类别抽取多少个样本)
  6. css ---border边框语法
  7. 执行k8s(helm)指令时指定配置文件
  8. 计算机公开课议课术语,评课用语大全:公开课评课缺点用语
  9. 数据结构(十九) -- C语言版 -- 树 - 树、森林、二叉树的江湖爱恨情仇、相互转换
  10. SqlServer中递归查询父节点及其所属子节点