• Stars
    star
    144
  • Rank 255,590 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 8 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

极光推送官方提供的 HBuilder 示例代码,可用于快速集成 JPush SDK 到 HBuilder 项目里。

JPush HBuilder Demo

platforms weibo

极光推送 官方提供的 JPush HBuilder Demo。是基于 HBuilder 提供的 第三方插件架构 进而开发出的推送插件,并集成到 iOS/Android 工程里的 demo。开发者可以通过我们提供的安装方式将推送功能集成到自己的项目中,从而在 js 层实现对推送的控制。

可以将 Demo 直接导入 Android Studio 或 Xcode 运行,如果想要在自己的项目中集成 JPush,可以参考以下步骤:

Android

Demo 用法

通过 Android Studio 引入项目目录下的 android 目录,再替换 ./android/app/build.gradle 中的「应用的包名」和「应用的 AppKey」。

集成指南

HBuilder 项目集成第三方插件,需先参考 HBuilder 官方的离线打包教程,将您的 HBuilder 项目集成进 Android 工程中。之后再执行以下步骤:

  1. 拷贝 ./android/app/src/main/java/io.dcloud.feature.jpush 文件夹至你 Android Studio 工程的 /src/main/java/ 目录下。

  2. 拷贝 ./jpush.js 到你 Android Studio 工程的 /assets/apps/HBuilder应用名/js/ 下。

  3. /assets/apps/你的应用名/www/manifest.json 文件中添加:

    "Push": {
        "description": "消息推送"
    }
  4. /assets/data/dcloud_properties.xml 中添加(如果已存在 Push feature,可以直接修改):

    <feature
        name="Push"
        value="io.dcloud.feature.jpush.JPushService" >
    </feature>
  5. app/build.gradle 中添加:

    android {
        ...
        defaultConfig {
            applicationId "com.xxx.xxx" // JPush 上注册的包名.
            ...
            ndk {
                // 选择要添加的对应 cpu 类型的 .so 库。
                abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
                // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
            }
            manifestPlaceholders = [
                JPUSH_PKGNAME : applicationId,
                JPUSH_APPKEY : "应用的 AppKey", // JPush上注册的包名对应的 appkey
                JPUSH_CHANNEL : "developer-default", // 暂时填写默认值即可
            ]
            ...
        }
        ...
    }
    dependencies {
        ...
        compile 'cn.jiguang.sdk:jpush:3.3.4'  // 此处以JPush 3.3.4 版本为例。
        compile 'cn.jiguang.sdk:jcore:2.1.2'  // 此处以JCore 2.1.2 版本为例。
        ...
    }
  6. AndroidManifest.xml 中添加:

     <!-- 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">
         <intent-filter>
             <action android:name="cn.jiguang.user.service.action" />
         </intent-filter>
     </service>
    
     <!-- User defined.  For test only  用户自定义接收消息器,3.0.7开始支持,目前新tag/alias接口设置结果会在该广播接收器对应的方法中回调-->
     <!--since 3.3.0 接收JPush相关事件-->
     <receiver android:name="io.dcloud.feature.jpush.PushMessageReceiver">
         <intent-filter>
             <action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
             <category android:name="${applicationId}"></category>
         </intent-filter>
     </receiver>
    <receiver
      android: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>

iOS 手动安装

  • 配置 manifest.json ,首先用源码的方式打开工程 /Pandora/ 目录下的 manifest.json ,在"permissions"中添加新的插件名称:

      "permissions": {
          "Push": {
      		"description": "极光推送插件"
      	}
      }
    
  • 配置 feature.plist ,在 Xcode 中打开 ../PandoraApi.bundle/ 目录下的 feature.plist ,为插件添加新的 item:

feature.plist

  • 将 JPush_Support 文件夹中所有内容在 Xcode 中拖到自己的工程里

  • 在 JPush_Support/PushConfig.plist 中配置 APP_KEY 、 PRODUCTION(0 开发 / 1 发布)、IDFA(是否需要通过广告标识符启动 sdk)

  • 打开 xcode,点击工程目录中顶部的 工程,选择(Target -> Build Phases -> Link Binary With Libraries),添加以下框架:

    CFNetwork.framework CoreFoundation.framework CoreTelephony.framework SystemConfiguration.framework CoreGraphics.framework Foundation.framework Security.framework UIKit.framework AdSupport.framework UserNotifications.framework(Xcode 8 及以上) libresolv.tbd(若存在 libresolv.dylib 则替换为 libresolv.tbd) libz.tbd(若存在 libz.dylib 则替换为 libz.tbd)

API 说明

iOS、Android 详细 API 文档请参阅 JPush Hbuilder API 文档

插件的 API 集中在 jpush.js 文件中,该文件的具体位置如下:

Android:

[Project]/android/assets/apps/H51423BFB/www/js/jpush.js

iOS:

  [Project]/iOS/HBuilder-Hello_jpush/HBuilder-Hello/Pandora/apps/HelloH5/www/js/jpush.js

常见问题

iOS

  1. 提示 Not get deviceToken yet。

    找到 Project -> TARGETS ->Capabilities -> Push Notifications 点开推送选项。

  2. 新版本中 H5P deviceToken 的获取回调已经不回调给 PGPush了。因此需要需要在 Appdelegate.m 文件中的 didRegisterForRemoteNotificationsWithDeviceToken 方法中添加代码:[JPUSHService registerDeviceToken:deviceToken]; ,注意导入头文件 import "JPUSHService.h"

  3. 新版本 H5P 官方已经把 PGPush 移除,所以需要将 demo 中的 PGPush.h 添加到自己工程。

  4. 收不到推送:首先按照正确方式再次配置证书、描述文件:iOS 证书设置指南

  5. PushConfig.plist 中的属性:

    • APP_KEY:应用标识
    • CHANNEL:渠道标识
    • IsProduction:是否生产环境
    • IsIDFA:是否使用 IDFA 启动 sdk

更多

JPush 官网文档

More Repositories

1

aurora-imui

General IM UI components. Android/iOS/RectNative ready. 通用 IM 聊天 UI 组件,已经同时支持 Android/iOS/RN。
Java
5,710
star
2

jpush-react-native

JPush's officially supported React Native plugin (Android & iOS). 极光推送官方支持的 React Native 插件(Android & iOS)。
Objective-C
1,351
star
3

jpush-phonegap-plugin

JPush's officially supported PhoneGap/Cordova plugin (Android & iOS). 极光推送官方支持的 PhoneGap/Cordova 插件(Android & iOS)。
JavaScript
926
star
4

jpush-flutter-plugin

JPush's officially supported Flutter plugin (Android & iOS). 极光推送官方支持的 Flutter 插件(Android & iOS)。
Objective-C
825
star
5

jpush-api-java-client

JiGuang's officially supported Java client library for accessing JPush APIs. 极光官方支持的 Java 版本服务器端 SDK。
Java
724
star
6

jpush-api-php-client

JPush's officially supported PHP client library for accessing JPush APIs. 极光推送官方支持的 PHP 版本服务器端 SDK。
PHP
524
star
7

jchat-android

JChat android app. A real app based on JMessage SDK.
Java
376
star
8

jchat-swift

Swift version of JChat iOS.
Swift
290
star
9

jpush-api-nodejs-client

JPush's officially supported Node.js client library for accessing JPush APIs. 极光推送官方支持的 Node.js 版本服务器端 SDK。
JavaScript
240
star
10

jpush-api-python-client

JPush's officially supported Python client library for accessing JPush APIs. 极光推送官方支持的 Python 版本服务器端 SDK。
Python
208
star
11

jmessage-react-plugin

Objective-C
184
star
12

jmessage-flutter-plugin

JMessage's Flutter plugin (Android & iOS). 极光推送官方支持的 Flutter 插件(Android & iOS)。
Java
166
star
13

jpush-api-csharp-client

JPush's officially supported C# client library for accessing JPush APIs. 极光推送官方支持的 C# 版本服务器端 SDK。
C#
135
star
14

jverify-flutter-plugin

JPush's officially supported Flutter plugin (Android & iOS). 极光推送官方支持的 Flutter 插件(Android & iOS)。
Objective-C
117
star
15

jpush-unity3d-plugin

JPush's officially supported Unity3d plugin (Android & iOS). 极光推送官方支持的 Unity3d 插件(Android & iOS)。
C#
114
star
16

jpush-docs

JPush docs on official website. 极光推送官方文档。
HTML
114
star
17

jmessage-phonegap-plugin

JiGuang's officially supported JMessage PhoneGap/Cordova plugin (Android & iOS). 极光官方支持的 IM PhoneGap/Cordova 插件。
JavaScript
106
star
18

jchat-web

JChat web
TypeScript
105
star
19

jshare-react-native

Objective-C
104
star
20

jchat-ios

JChat iOS app, a real app based on JMessage SDK.
Objective-C
102
star
21

jpush-api-ruby-client

JPush's officially supported Ruby client library for accessing JPush APIs. 极光推送官方支持的 Ruby 版本服务器端 SDK。
Ruby
99
star
22

jbox

极光宝盒,一个基于 JPush 的轻便易用的通知框架。
Python
74
star
23

aurora-imui-examples

Swift
65
star
24

jmessage-api-java-client

JiGuang's officially supported Java client library for accessing JMessage APIs. 极光官方支持的 Java 版本服务器端 SDK。
Java
60
star
25

jpush-swift-demo

Offically supported Swift Demo for JPush iOS SDK.
Swift
55
star
26

janalytics-react-native

Objective-C
52
star
27

jcore-react-native

Objective-C
49
star
28

jpush-hbuilder-plugin

Vue
48
star
29

jmessage-api-php-client

JMessage's officially supported PHP client library for accessing JMessage APIs. 极光IM官方支持的 PHP 版本服务器端 SDK。
PHP
43
star
30

jmessage-android-uikit

极光IM Android SDK UI 组件
Java
39
star
31

janalytics-flutter-plugin

Dart
38
star
32

jmessage-ios-uikit

极光IM iOS SDK UI 组件
Objective-C
31
star
33

jverification-react-native

Objective-C
30
star
34

jpush-java-library

Java library for JPush API. Moved to - https://github.com/jpush/jpush-api-java-client 本库不再维护,做了迁移。
Java
30
star
35

jpush-ios-sdk-pod

JPush's officially supported iOS SDK Pod for CocosPods. 极光推送官方支持的 iOS SDK Pod.
Objective-C
28
star
36

jsms-api-java-client

JiGuang's officially supported Java client library for accessing JSMS APIs. 极光官方支持的 JSMS Java 版本服务器端 SDK。
Java
27
star
37

jverification-hbuilder-plugin

极光认证官方支持的 hbuilder 插件(Android & iOS)
Objective-C
24
star
38

jshare-flutter-plugin

JShare's officially supported Flutter plugin (Android & iOS). 极光分享官方支持的 Flutter 插件(Android & iOS)。
Dart
24
star
39

cordova-plugin-jcore

Java
20
star
40

jmlink-flutter-plugin

JPush's officially supported Flutter plugin (Android & iOS). 极光推送官方支持的 Flutter 插件(Android & iOS)。
Dart
19
star
41

jiguang-java-client-common

Common lib for JiGuang Java clients.
Java
18
star
42

jpush-cocos2d-x-plugin

JPush's officially supported Cocos2d-x plugin (Android & iOS). 极光推送官方支持的 Cocos2d-x 插件(Android & iOS)。
Python
18
star
43

jpush-android-samples

JPush's officially supported Android SDK samples for demo SDK APIs. 极光推送官方支持的 Android SDK 示例,以演示如何使用 SDK APIs。
Java
18
star
44

cordova-plugin-janalytics

Objective-C
14
star
45

JVerfication-Demo

Objective-C
14
star
46

android-push-example

更丰富地演示基于 JPush Android SDK 可以实现的功能、效果。
Java
14
star
47

jchat-windows

JChat Windows Application
C++
13
star
48

jmessage-api-csharp-client

JMessage's officially supported CSharp client library for accessing JMessage APIs. 极光IM官方支持的 CSharp 版本服务器端 SDK。
C#
13
star
49

jmrtc-react-native

Objective-C
10
star
50

jmessage-api-python-client

JiGuang's officially supported Python client library for accessing JMessage APIs. 极光官方支持的 JMessage Python 版本服务器端 SDK。
Python
9
star
51

jpush-weex-plugin

Java
8
star
52

jsms-api-php-client

JiGuang's officially supported PHP client library for accessing JSMS APIs. 极光官方支持的 JSMS PHP 版本服务器端 SDK。
PHP
8
star
53

cordova-plugin-jsms

JiGuang's officially supported JSMS PhoneGap/Cordova plugin (Android & iOS). 极光官方支持的短信验证码 PhoneGap/Cordova 插件。
Objective-C
8
star
54

JIoT-SDK-C

C
7
star
55

jmlink_demo

jmlink demo
Java
7
star
56

jpush-api-go-client

JPush's officially supported Go-lang client library for accessing JPush APIs. 极光推送官方支持的 Go 语言版本服务器端 SDK。
5
star
57

jpush-opensource

JPush official website for open-source projects.
CSS
5
star
58

JVerification-cordova-plugin

极光认证官方支持的 cordova 插件(Android & iOS)
Objective-C
4
star
59

jmrtc-phonegap-plugin

Objective-C
4
star
60

cordova-plugin-jshare

极光官方支持的社交分享 Cordova 插件。
3
star
61

jsms-react-native

Java
3
star
62

jmessage-ios-pod

JMessage iOS SDK (framework) for CocoaPods
Objective-C
3
star
63

jpush-ios-samples

JPush's officially supported iOS SDK samples for demo SDK APIs. 极光推送官方支持的 iOS SDK 示例,以演示如何使用 SDK APIs。
Objective-C
3
star
64

jsms-api-csharp-client

JiGuang's officially supported C# client library for accessing JSMS APIs. 极光官方支持的 JSMS C# 版本服务器端 SDK。
C#
3
star
65

ios-resources-review

2
star
66

jmlink-react-native

JMlink's officially supported react native plugin (Android & iOS). 极光魔链官方支持的 react native 插件(Android & iOS)。
Objective-C
2
star
67

JIoT-rtthread-package

JIoT SDK rt-thread package
C
2
star
68

jmessage-android-samples

极光IM Android SDK 样例
2
star
69

joperate-flutter-plugin

Dart
2
star
70

JIoT-SDK-Android

极光 IoT 客户端 SDK Android
Java
1
star
71

jmessage-unity3d-plugin

1
star
72

jcore-hbuilder-plugin

Objective-C
1
star
73

janalytics-hbuilder-demo

HTML
1
star
74

jsms-api-python-client

Python
1
star
75

Jpush-Google

1
star