cordova-plugin-jpush-capacitor

3.7.9 • Public • Published

cordova-plugin-jpush-capacitor

platforms weibo

在官方基础上,增加对Capacitor电容器的支持(支持Capacitor3)

Capacitor(2.0/3.0) 安装

npm install cordova-plugin-jpush-capacitor -S

npm install cordova-plugin-device -S

npm install cordova-plugin-jcore -S

同步插件至Native项目:

npx cap sync

IOS 使用

配置JPUSH APPkey: https://img-blog.csdnimg.cn/2020110211285992.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3podXhpYW5kYW4=,size_16,color_FFFFFF,t_70#pic_center 也可以在安装npm包之后,在插件目录 node_modules/cordova-plugin-jpush-capacitor/src/ios/JPushConfig.plist 中修改,推荐使用这个方式更改,更改之后需要手动在执行一遍npx cap sync

IOS项目中添加桥接头文件, 如图: https://img-blog.csdnimg.cn/20201102105208957.gif#pic_center 生成的.m文件可以删除

在生成的头文件中导入jpush:

#import "JPUSHService.h"

Capacitor 注册极光devicetoken

Capacitor2.0版本: 在Appdelegate.swift 文件的 didRegisterForRemoteNotificationsWithDeviceToken 方法中添加如下代码:

func application(application: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
  NSNotificationCenter.defaultCenter().postNotificationName("DidRegisterRemoteNotification", object: deviceToken)
  JPUSHService.registerDeviceToken(deviceToken)
}

Capacitor3.0版本: 在Appdelegate.swift中加入以下代码:

func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
  JPUSHService.registerDeviceToken(deviceToken)
}

以上准备就绪后,需要手动调用初始化SDK:

window.JPush.startJPushSDK() // 可以打印一下window.JPush, 官方支持的API均可以使用

Android 使用

配置JPUSH APPkey: Android 配置APPKey 也可以在安装npm包之后,在插件目录 node_modules/cordova-plugin-jpush-capacitor/plugin.xml 中修改,推荐使用这个方式更改

// 在plugin.xml中将此处的$APP_KEY替换成自己的即可
<meta-data android:name="JPUSH_APPKEY" android:value="$APP_KEY" /> 

替换之后需要手动在执行一遍npx cap sync,直接在原生项目中做替换的可不必运行

Android无需手动初始化SDK

示例代码(以Ionic为例)

import { isPlatform } from '@ionic/vue';
class Jpush {
    jpush: any;

    constructor() {
        if (window.JPush) {
            this.jpush = window.JPush;
            this.jpush.setDebugMode(true);
            if (isPlatform('ios')) {
                this.jpush.startJPushSDK();
            }
            this.jpush.init();
        }
    }

    getRegistrationID() {
        return new Promise(resolve => {
            this.jpush.getRegistrationID(function (rId: string) {
                resolve(rId);
                console.log("JPushPlugin:registrationID is " + rId);
            })
        })
    }

    // 设置别名
    setAlias(alias: string) {
      return new Promise(((resolve, reject) => {
        this.jpush.setAlias({
          alias,
          sequence: new Date().valueOf(),
        },  (res: { alias: string, sequence: number }) => {
          console.log('别名设置成功: ', res);
          resolve(res);
        },  (err: { code: number, sequence: number }) => {
            console.log('别名设置失败: ', err);
            setTimeout(() => this.setAlias(alias), 3000);
            reject(err);
        })
      }))

    }

    // 设置角标 只限IOS
    setBadge(badge: number) {
      if (isPlatform('ios')) {
        this.jpush.setBadge(badge);
      }
    }
}
export default Jpush

API请查阅官方文档:https://github.com/jpush/jpush-phonegap-plugin

Dependencies (0)

    Dev Dependencies (2)

    Package Sidebar

    Install

    npm i cordova-plugin-jpush-capacitor

    Weekly Downloads

    9

    Version

    3.7.9

    License

    MIT

    Unpacked Size

    16.6 MB

    Total Files

    53

    Last publish

    Collaborators

    • zhuxian