Skip to content

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

Notifications You must be signed in to change notification settings

tomsean/jpush-phonegap-plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

l## JPush PhoneGap Plugin ##

###准备工作

  1. cordova create 文件夹名字 包名 应用名字

     cordova create Myproj com.myproj.jpush MyTestProj
    
  2. 添加平台

     cd Myproj 
     cordova platform add android  
     cordova platform add ios
    
     ps:这里请注意iOS平台,必须先执行 `cordova platform add ios`,
     然后再执行`cordova plugin add xxxxx`命令,不然有一些必须要的链接库需要手动添加
    

###Cordova CLI/Phonegap 安装 Android & iOS

  1. 使用git命令将jpush phonegap插件下载的本地,将这个目录标记为$JPUSH_PLUGIN_DIR

     git clone https://github.com/jpush/jpush-phonegap-plugin.git
    
  2. $JPUSH_PLUGIN_DIR/plugin.xml文件中的AppKey替换为在Portal上注册该应用的的Key,例如(9fed5bcb7b9b87413678c407)

     <meta-data android:name="JPUSH_APPKEY" android:value="your appkey"/>
    
  3. $JPUSH_PLUGIN_DIR/src/android/JPushPlugin.java 文件import your.package.name.R替换为在Portal上注册该应用的包名,例如(com.thi.pushtest)

  4. cordova cli 添加jpush phonegap插件和依赖的device插件:

     cordova plugin add $JPUSH_PLUGIN_DIR
     cordova plugin add org.apache.cordova.device
    
  5. iOS添加初始化JPush sdk代码 如果你要先部署android平台,可以先忽略这一步,当需要iOS 平台时,只加上这个步骤即可

    • 用xcode 打开 Myproj下的iOS工程

    • 打开xcode右边工程目录下Resources/PushConfig.plist

        在APP_KEY和CHANNLE字段 分别添加您的appkey和channle
      
    • 打开xcode右边工程目录下AppDelegate.m,包含以下头文件

        #import "APService.h"
        #import "JPushPlugin.h"
      
    • 在AppDelegate.m文件中,添加JPush SDK 提供的 API 来实现功能

        - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
           //原内容保持不变
           //Required add 
           [JPushPlugin setLaunchOptions:launchOptions];
            return YES;
        }
        - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken   {
            //原内容保持不变
            // Required add
            [APService registerDeviceToken:deviceToken];
        }
        - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
            //原内容保持不变
            // Required
            [APService handleRemoteNotification:userInfo];
        	[[NSNotificationCenter defaultCenter] postNotificationName:kJPushPluginReceiveNotification
                                                               object:userInfo];
        }
        - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
      
          // IOS 7 Support Required
          [APService handleRemoteNotification:userInfo];
          [[NSNotificationCenter defaultCenter] postNotificationName:kJPushPluginReceiveNotification
                                                              object:userInfo];
      
          completionHandler(UIBackgroundFetchResultNewData);
        }
      
  6. 在js中调用函数,初始化jpush sdk

      window.plugins.jPushPlugin.init();	
      //由于phonegap插件采用了Lazy load的特性,	所以这里建议在js文件能执行的最开始就加
    

Android 手工安装

Android 手工安装文档地址

IOS手工安装

IOS手工安装文档地址

###示例

  1. "$JPUSH_PLUGIN_DIR/example"文件夹内找到并拷贝以下文件

     src/example/index.html to www/index.html
     src/example/css/* to www/css
     src/example/js/* to www/js
    

###关于'phonegap build'云服务

该项目基于cordova实现,目前无法使用'phonegap build'云服务进行打包,建议使用本地环境进行打包

###常见错误

  1. androd

     eclipse中phonegap工程import之后出现:`Type CallbackContext cannot be resolved to a type`
     解决方案:eclipse中右键单击工程名,Build Path->Config Build Path->Projects->选中 工程名称-CordovaLib->点击 add
    

API说明

插件的API集中在JPushPlugin.js文件中,这个文件的位置如下

  • android:[YOUR__ANDROID_PROJECT]/assets/www/plugins/cn.jpush.phonegap.JPushPlugin/www
  • iOS:[YOUR_iOS_PROJEcT]/www/plugins/cn.jpush.phonegap.JPushPlugin/www

具体的API请参考这里

iOS和adnroid通用API简介

  • 停止与恢复推送服务 API

      window.plugins.jPushPlugin.init()
      window.plugins.jPushPlugin.stopPush()
      window.plugins.jPushPlugin.resumePush()
      window.plugins.jPushPlugin.isPushStopped(callback)
    
  • 获取 RegistrationID API

      window.plugins.jPushPlugin.getRegistrationID(callback)
    
  • 别名与标签 API

      window.plugins.jPushPlugin.setTagsWithAlias(tags,alias)
      window.plugins.jPushPlugin.setTags(tags)
      window.plugins.jPushPlugin.setAlias(alias)
    
  • 获取通知内容

      event - jpush.openNotification
    
  • 获取自定义消息推送内容

      event - jpush.receiveMessage
    

通用API详细说明

iOS API简介

  • 获取 APNs(通知) 推送内容

      event - jpush.receiveNotification
    
  • 获取自定义消息推送内容

      event - jpush.receiveMessage
      //推荐使用事件的方式传递,但同时保留了receiveMessageIniOSCallback的回调函数,兼容以前的代码
      window.plugins.jPushPlugin.receiveMessageIniOSCallback(data)
    
  • 页面的统计

      window.plugins.jPushPlugin.startLogPageView (pageName)
      window.plugins.jPushPlugin.stopLogPageView (pageName)
      window.plugins.jPushPlugin.beginLogPageView (pageName,duration)
    
  • 设置Badge

      window.plugins.jPushPlugin.setBadge(value)
      window.plugins.jPushPlugin.resetBadge()
      window.plugins.jPushPlugin.setApplicationIconBadgeNumber(badge)
    
  • 本地通知

    • 后续版本加入
  • 日志等级设置

      window.plugins.jPushPlugin.setDebugModeFromIos ()
      window.plugins.jPushPlugin.setLogOFF()
    

iOS API详细说明

adnroid API简介

  • 获取集成日志 window.plugins.jPushPlugin.setDebugMode(mode)

  • 接收推送消息Receiver

      //推荐使用event jpush.Message和jpush.openNotification,
      //下面这两个api 是兼容旧有的代码
      window.plugins.jPushPlugin.receiveMessageInAndroidCallback(data)
      window.plugins.jPushPlugin.openNotificationInAndroidCallback(data)
    
  • 统计分析 API

      onResume / onPause(java api)
    
  • 清除通知 API

      window.plugins.jPushPlugin.clearAllNotification()
    
  • 通知栏样式定制 API

      window.plugins.jPushPlugin.setBasicPushNotificationBuilder = function()
      window.plugins.jPushPlugin.setCustomPushNotificationBuilder = function()
    
  • 设置保留最近通知条数 API

      window.plugins.jPushPlugin.setLatestNotificationNum(num)
    
  • 本地通知API

      window.plugins.jPushPlugin.addLocalNotification(builderId,
      										    content,
      										    title,
      										    notificaitonID,
      										    broadcastTime,
      									 	    extras)
      window.plugins.jPushPlugin.removeLocalNotification(notificationID)
      window.plugins.jPushPlugin.clearLocalNotifications()
    

Android API详细说明

###更多 JPush官网文档

About

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

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 61.1%
  • CSS 27.8%
  • Objective-C 4.8%
  • Java 4.2%
  • HTML 2.1%