123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- var JPushPlugin = function () {}
- // private plugin function
- JPushPlugin.prototype.receiveMessage = {}
- JPushPlugin.prototype.openNotification = {}
- JPushPlugin.prototype.receiveNotification = {}
- JPushPlugin.prototype.isPlatformIOS = function () {
- var isPlatformIOS = device.platform == 'iPhone'
- || device.platform == 'iPad'
- || device.platform == 'iPod touch'
- || device.platform == 'iOS'
- return isPlatformIOS
- }
- JPushPlugin.prototype.error_callback = function (msg) {
- console.log('Javascript Callback Error: ' + msg)
- }
- JPushPlugin.prototype.call_native = function (name, args, callback) {
- ret = cordova.exec(callback, this.error_callback, 'JPushPlugin', name, args)
- return ret
- }
- // public methods
- JPushPlugin.prototype.init = function () {
- if (this.isPlatformIOS()) {
- var data = []
- this.call_native('initial', data, null)
- } else {
- data = []
- this.call_native('init', data, null)
- }
- }
- JPushPlugin.prototype.getRegistrationID = function (callback) {
- try {
- var data = []
- this.call_native('getRegistrationID', [data], callback)
- } catch(exception) {
- console.log(exception)
- }
- }
- JPushPlugin.prototype.stopPush = function () {
- data = []
- this.call_native('stopPush', data, null)
- }
- JPushPlugin.prototype.resumePush = function () {
- data = []
- this.call_native('resumePush', data, null)
- }
- JPushPlugin.prototype.isPushStopped = function (callback) {
- data = []
- this.call_native('isPushStopped', data, callback)
- }
- // iOS methods
- JPushPlugin.prototype.setTagsWithAlias = function (tags, alias) {
- try {
- if (tags == null) {
- this.setAlias(alias)
- return
- }
- if (alias == null) {
- this.setTags(tags)
- return
- }
- var arrayTagWithAlias = [tags]
- arrayTagWithAlias.unshift(alias)
- this.call_native('setTagsWithAlias', arrayTagWithAlias, null)
- } catch(exception) {
- console.log(exception)
- }
- }
- JPushPlugin.prototype.setTags = function (tags) {
- try {
- this.call_native('setTags', tags, null)
- } catch(exception) {
- console.log(exception)
- }
- }
- JPushPlugin.prototype.setAlias = function (alias) {
- try {
- this.call_native('setAlias', [alias], null)
- } catch(exception) {
- console.log(exception)
- }
- }
- JPushPlugin.prototype.setBadge = function (value) {
- if (this.isPlatformIOS()) {
- try {
- this.call_native('setBadge', [value], null)
- } catch(exception) {
- console.log(exception)
- }
- }
- }
- JPushPlugin.prototype.resetBadge = function () {
- if (this.isPlatformIOS()) {
- try {
- var data = []
- this.call_native('resetBadge', [data], null)
- } catch(exception) {
- console.log(exception)
- }
- }
- }
- JPushPlugin.prototype.setDebugModeFromIos = function () {
- if (this.isPlatformIOS()) {
- var data = []
- this.call_native('setDebugModeFromIos', [data], null)
- }
- }
- JPushPlugin.prototype.setLogOFF = function () {
- if (this.isPlatformIOS()) {
- var data = []
- this.call_native('setLogOFF', [data], null)
- }
- }
- JPushPlugin.prototype.setCrashLogON = function () {
- if (this.isPlatformIOS()) {
- var data = []
- this.call_native('crashLogON', [data], null)
- }
- }
- JPushPlugin.prototype.addLocalNotificationForIOS = function (delayTime, content,
- badge, notificationID, extras) {
- if (this.isPlatformIOS()) {
- var data = [delayTime, content, badge, notificationID, extras]
- this.call_native('setLocalNotification', data, null)
- }
- }
- JPushPlugin.prototype.deleteLocalNotificationWithIdentifierKeyInIOS = function (
- identifierKey) {
- if (this.isPlatformIOS()) {
- var data = [identifierKey]
- this.call_native('deleteLocalNotificationWithIdentifierKey', data, null)
- }
- }
- JPushPlugin.prototype.clearAllLocalNotifications = function () {
- if (this.isPlatformIOS()) {
- var data = []
- this.call_native('clearAllLocalNotifications', data, null)
- }
- }
- JPushPlugin.prototype.setLocation = function (latitude, longitude) {
- if (this.isPlatformIOS()) {
- var data = [latitude, longitude]
- this.call_native('setLocation', data, null)
- }
- }
- JPushPlugin.prototype.receiveMessageIniOSCallback = function (data) {
- try {
- console.log('JPushPlugin:receiveMessageIniOSCallback--data:' + data)
- var bToObj = JSON.parse(data)
- var content = bToObj.content
- console.log(content)
- } catch(exception) {
- console.log('JPushPlugin:receiveMessageIniOSCallback' + exception)
- }
- }
- JPushPlugin.prototype.startLogPageView = function (pageName) {
- if (this.isPlatformIOS()) {
- this.call_native('startLogPageView', [pageName], null)
- }
- }
- JPushPlugin.prototype.stopLogPageView = function (pageName) {
- if (this.isPlatformIOS()) {
- this.call_native('stopLogPageView', [pageName], null)
- }
- }
- JPushPlugin.prototype.beginLogPageView = function (pageName, duration) {
- if (this.isPlatformIOS()) {
- this.call_native('beginLogPageView', [pageName, duration], null)
- }
- }
- JPushPlugin.prototype.setApplicationIconBadgeNumber = function (badge) {
- if (this.isPlatformIOS()) {
- this.call_native('setApplicationIconBadgeNumber', [badge], null)
- }
- }
- JPushPlugin.prototype.getApplicationIconBadgeNumber = function (callback) {
- if (this.isPlatformIOS()) {
- this.call_native('getApplicationIconBadgeNumber', [], callback)
- }
- }
- // 判断系统设置中是否对本应用启用通知。
- // iOS: 返回值如果大于 0,代表通知开启;0: 通知关闭。
- // UIRemoteNotificationTypeNone = 0,
- // UIRemoteNotificationTypeBadge = 1 << 0,
- // UIRemoteNotificationTypeSound = 1 << 1,
- // UIRemoteNotificationTypeAlert = 1 << 2,
- // UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3,
- // Android: 返回值 1 代表通知启用、0: 通知关闭。
- JPushPlugin.prototype.getUserNotificationSettings = function (callback) {
- if (this.isPlatformIOS()) {
- this.call_native('getUserNotificationSettings', [], callback)
- } else if (device.platform == 'Android') {
- this.call_native('areNotificationEnabled', [], callback)
- }
- }
- JPushPlugin.prototype.addDismissActions = function (actions, categoryId) {
- this.call_native('addDismissActions', [actions, categoryId])
- }
- JPushPlugin.prototype.addNotificationActions = function (actions, categoryId) {
- this.call_native('addNotificationActions', [actions, categoryId])
- }
- // Android methods
- JPushPlugin.prototype.setDebugMode = function (mode) {
- if (device.platform == 'Android') {
- this.call_native('setDebugMode', [mode], null)
- }
- }
- JPushPlugin.prototype.setBasicPushNotificationBuilder = function () {
- if (device.platform == 'Android') {
- data = []
- this.call_native('setBasicPushNotificationBuilder', data, null)
- }
- }
- JPushPlugin.prototype.setCustomPushNotificationBuilder = function () {
- if (device.platform == 'Android') {
- data = []
- this.call_native('setCustomPushNotificationBuilder', data, null)
- }
- }
- JPushPlugin.prototype.receiveMessageInAndroidCallback = function (data) {
- try {
- data = JSON.stringify(data)
- console.log('JPushPlugin:receiveMessageInAndroidCallback: ' + data)
- this.receiveMessage = JSON.parse(data)
- cordova.fireDocumentEvent('jpush.receiveMessage', this.receiveMessage)
- } catch(exception) {
- console.log('JPushPlugin:pushCallback ' + exception)
- }
- }
- JPushPlugin.prototype.openNotificationInAndroidCallback = function (data) {
- try {
- data = JSON.stringify(data)
- console.log('JPushPlugin:openNotificationInAndroidCallback: ' + data)
- this.openNotification = JSON.parse(data)
- cordova.fireDocumentEvent('jpush.openNotification', this.openNotification)
- } catch(exception) {
- console.log(exception)
- }
- }
- JPushPlugin.prototype.receiveNotificationInAndroidCallback = function (data) {
- try {
- data = JSON.stringify(data)
- console.log('JPushPlugin:receiveNotificationInAndroidCallback: ' + data)
- this.receiveNotification = JSON.parse(data)
- cordova.fireDocumentEvent('jpush.receiveNotification', this.receiveNotification)
- } catch(exception) {
- console.log(exception)
- }
- }
- JPushPlugin.prototype.clearAllNotification = function () {
- if (device.platform == 'Android') {
- data = []
- this.call_native('clearAllNotification', data, null)
- }
- }
- JPushPlugin.prototype.clearNotificationById = function (notificationId) {
- if (device.platform == 'Android') {
- data = []
- this.call_native('clearNotificationById', [notificationId], null)
- }
- }
- JPushPlugin.prototype.setLatestNotificationNum = function (num) {
- if (device.platform == 'Android') {
- this.call_native('setLatestNotificationNum', [num], null)
- }
- }
- JPushPlugin.prototype.setDebugMode = function (mode) {
- if (device.platform == 'Android') {
- this.call_native('setDebugMode', [mode], null)
- }
- }
- JPushPlugin.prototype.addLocalNotification = function (builderId, content, title,
- notificationID, broadcastTime, extras) {
- if (device.platform == 'Android') {
- data = [builderId, content, title, notificationID, broadcastTime, extras]
- this.call_native('addLocalNotification', data, null)
- }
- }
- JPushPlugin.prototype.removeLocalNotification = function (notificationID) {
- if (device.platform == 'Android') {
- this.call_native('removeLocalNotification', [notificationID], null)
- }
- }
- JPushPlugin.prototype.clearLocalNotifications = function () {
- if (device.platform == 'Android') {
- data = []
- this.call_native('clearLocalNotifications', data, null)
- }
- }
- JPushPlugin.prototype.reportNotificationOpened = function (msgID) {
- if (device.platform == 'Android') {
- this.call_native('reportNotificationOpened', [msgID], null)
- }
- }
- /**
- *是否开启统计分析功能,用于“用户使用时长”,“活跃用户”,“用户打开次数”的统计,并上报到服务器上,
- *在 Portal 上展示给开发者。
- */
- JPushPlugin.prototype.setStatisticsOpen = function (mode) {
- if (device.platform == 'Android') {
- this.call_native('setStatisticsOpen', [mode], null)
- }
- }
- /**
- * 用于在 Android 6.0 及以上系统,申请一些权限
- * 具体可看:http://docs.jpush.io/client/android_api/#android-60
- */
- JPushPlugin.prototype.requestPermission = function () {
- if (device.platform == 'Android') {
- this.call_native('requestPermission', [], null)
- }
- }
- JPushPlugin.prototype.setSilenceTime = function (startHour, startMinute, endHour, endMinute) {
- if (device.platform == 'Android') {
- this.call_native('setSilenceTime', [startHour, startMinute, endHour, endMinute], null)
- }
- }
- JPushPlugin.prototype.setPushTime = function (weekdays, startHour, endHour) {
- if (device.platform == 'Android') {
- this.call_native('setPushTime', [weekdays, startHour, endHour], null)
- }
- }
- if (!window.plugins) {
- window.plugins = {}
- }
- if (!window.plugins.jPushPlugin) {
- window.plugins.jPushPlugin = new JPushPlugin()
- }
- module.exports = new JPushPlugin()
|