@freedom_sky/cordova-plugin-aliyunpush

Cordova Push Plugin,use Aliyun SDK

Usage no npm install needed!

<script type="module">
  import freedomSkyCordovaPluginAliyunpush from 'https://cdn.skypack.dev/@freedom_sky/cordova-plugin-aliyunpush';
</script>

README

cordova-plugin-aliyunpush

Install

  • 通过 Cordova Plugins 安装,要求 Cordova CLI 5.0+:

cordova plugin add @freedom_sky/cordova-plugin-aliyunpush


## 注意事项
* 安卓默认通道名“-1”,安卓8以上推送时需要指定通道才能收到
* ios阿里云插件版本1.9.9
* 目前只集成了华为、小米通道
* 安卓9以上需要动态获取READ_PHONE_STATE权限

### Android Preferences

```xml
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
          <application android:name="com.alipush.PushApplication" />
</edit-config>
<config-file parent="/manifest/application" target="app/src/main/AndroidManifest.xml" xmlns:android="http://schemas.android.com/apk/res/android">
          <meta-data android:name="AliyunAppKey" android:value="value=XXXXXX" />
          <meta-data android:name="AliyunAppSecret" android:value="value=XXXXXX" />
          <meta-data android:name="XiaoMiAppId" android:value="value=XXXX" />
          <meta-data android:name="XiaoMiAppKey" android:value="value=XXXX" />
          <meta-data  android:name="com.huawei.hms.client.appid" android:value="appid=XXXXX" />
          <activity android:name="com.alipush.PopupPushActivity" android:exported="true" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
          <receiver android:name="com.alipush.PushMessageReceiver" android:exported="false">
              <intent-filter>
                  <action android:name="com.alibaba.push2.action.NOTIFICATION_OPENED" />
              </intent-filter>
              <intent-filter>
                  <action android:name="com.alibaba.push2.action.NOTIFICATION_REMOVED" />
              </intent-filter>
              <intent-filter>
                  <action android:name="com.alibaba.sdk.android.push.RECEIVE" />
              </intent-filter>
          </receiver>
</config-file>

IOS Preferences

<!-- 需要先将阿里云下载得到的AliyunEmasServices-Info.plist文件放置在resources/ios/plist/目录下 -->
<resource-file src="resources/ios/plist/AliyunEmasServices-Info.plist" />

Usage

API

    /**
     * 获取设备唯一标识deviceId,deviceId为阿里云移动推送过程中对设备的唯一标识(并不是设备UUID/UDID)
     * @param  {Function} successCallback 成功回调
     * @param  {Function} errorCallback   失败回调
     * @return {void}  
     */
    getRegisterId: function(successCallback, errorCallback)

    /**
     * 阿里云推送绑定账号名
     * @param  {string} account         账号
     * @param  {Function} successCallback 成功回调
     * @param  {Function} errorCallback   失败回调
     * @return {void} 
     */
    bindAccount: function(account, successCallback, errorCallback)

    /**
     * 阿里云推送解除账号名,退出或切换账号时调用
     * @param  {Function} successCallback 成功回调
     * @param  {Function} errorCallback   失败回调
     * @return {void} 
     */
    unbindAccount: function(successCallback, errorCallback)

    /**
     * 阿里云推送绑定标签
     * @param  {string[]} tags            标签列表
     * @param  {Function} successCallback 成功回调
     * @param  {Function} errorCallback   失败回调
     * @return {void}  
     */
    bindTags: function(tags, successCallback, errorCallback) 

    /**
     * 阿里云推送解除绑定标签
     * @param  {string[]} tags            标签列表
     * @param  {Function} successCallback 成功回调
     * @param  {Function} errorCallback   失败回调
     * @return {void}               
     */
    unbindTags: function(tags, successCallback, errorCallback)

    /**
     * 阿里云推送解除绑定标签
     * @param  {Function} successCallback 成功回调
     * @param  {Function} errorCallback   失败回调
     * @return {void}           
     */
    listTags: function(successCallback, errorCallback) 

    /**
      * 没有权限时,请求开通通知权限,其他路过
      * @param  string msg  请求权限的描述信息
      * @param {} successCallback 
      * @param {*} errorCallback 
      */
    requireNotifyPermission:function(msg,successCallback, errorCallback)
    
    /**
    * 阿里云推送消息透传回调
    * @param  {Function} successCallback 成功回调
    */
    onMessage:function(sucessCallback) ;

    # sucessCallback:调用成功回调方法,注意没有失败的回调,返回值结构如下:
    #json: {
      type:string 消息类型,
      title:string '阿里云推送',
      content:string '推送的内容',
      extra:string | Object<k,v> 外健,
      url:路由(后台发送推送时,在ExtParameters参数里写入url如{url:'demoapp://...'})
    }

    #消息类型
    {
      message:透传消息,
      notification:通知接收,
      notificationOpened:通知点击,
      notificationReceived:通知到达,
      notificationRemoved:通知移除,
      notificationClickedWithNoAction:通知到达,
      notificationReceivedInApp:通知到达打开 app
    }