jpushservice.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. (function (app) {
  2. //工具类服务
  3. app.factory("jpushService", ['$http','$state', '$window', '$document', function ($http,$state, $window, $document) {
  4. var jpushServiceFactory = {};
  5. //var jpushapi=$window.plugins.jPushPlugin;
  6. //启动极光推送
  7. var _init = function (config) {
  8. $window.plugins.jPushPlugin.startJPushSDK()
  9. $window.plugins.jPushPlugin.init();
  10. // //设置tag和Alias触发事件处理
  11. // document.addEventListener('jpush.setTagsWithAlias',config.stac,false);
  12. //打开推送消息事件处理
  13. $window.plugins.jPushPlugin.openNotificationInAndroidCallback = config.oniac;
  14. //IOS打开通知栏消息
  15. // $window.plugins.jPushPlugin.receiveMessageIniOSCallback=config.notify;
  16. $window.plugins.jPushPlugin.setDebugMode(true);
  17. $window.plugins.jPushPlugin.setDebugModeFromIos();
  18. $window.plugins.jPushPlugin.setCrashLogON();
  19. $window.plugins.jPushPlugin.setApplicationIconBadgeNumber(0);
  20. //点击推送通知
  21. // document.addEventListener("jpush.openNotification", config.notify, false);
  22. window.plugins.jPushPlugin.openNotificationInAndroidCallback = function(res){
  23. var obj = JSON.parse(res);
  24. console.log(obj);
  25. var id = obj.extras['cn.jpush.android.EXTRA'].id;
  26. var type = obj.extras['cn.jpush.android.EXTRA'].type;
  27. if(type == 1){
  28. $state.go('app.message_sys',{id: id, type: 1});
  29. }
  30. else if(type == 2){
  31. $state.go('app.home_dreamdetail',{id: id, type: 2});
  32. }
  33. else if(type == 3){
  34. $state.go('app.letterDetail');
  35. }
  36. else if(type == 4){
  37. $state.go('app.home_dreamdetail',{id: id, type: 3});
  38. }
  39. }
  40. //前台收到推送
  41. document.addEventListener("jpush.receiveNotification", config.notify, false);
  42. //后台收到推送
  43. // document.addEventListener("jpush.backgroundNotification", config.bknotify, false);
  44. // document.addEventListener("jpush.setTagsWithAlias", onTagsWithAlias, false);
  45. // document.addEventListener("deviceready", onDeviceReady, false);
  46. document.addEventListener("jpush.openNotification", config.iosopenNotification, true);
  47. // document.addEventListener("jpush.receiveNotification", onReceiveNotification, false);
  48. // document.addEventListener("jpush.receiveMessage", config.notify, false);
  49. }
  50. //获取状态
  51. var _isPushStopped = function (fun) {
  52. $window.plugins.jPushPlugin.isPushStopped(fun)
  53. }
  54. //停止极光推送
  55. var _stopPush = function () {
  56. $window.plugins.jPushPlugin.stopPush();
  57. }
  58. //重启极光推送
  59. var _resumePush = function () {
  60. $window.plugins.jPushPlugin.resumePush();
  61. }
  62. //设置标签和别名
  63. var _setTagsWithAlias = function (tags, alias) {
  64. $window.plugins.jPushPlugin.setTagsWithAlias(tags, alias);
  65. }
  66. //设置标签
  67. var _setTags = function (tags) {
  68. $window.plugins.jPushPlugin.setTags(tags);
  69. }
  70. //设置别名
  71. var _setAlias = function (alias) {
  72. $window.plugins.jPushPlugin.setAlias(alias);
  73. }
  74. jpushServiceFactory.init = _init;
  75. jpushServiceFactory.isPushStopped = _isPushStopped;
  76. jpushServiceFactory.stopPush = _stopPush;
  77. jpushServiceFactory.resumePush = _resumePush;
  78. jpushServiceFactory.setTagsWithAlias = _setTagsWithAlias;
  79. jpushServiceFactory.setTags = _setTags;
  80. jpushServiceFactory.setAlias = _setAlias;
  81. return jpushServiceFactory;
  82. }]);
  83. })(angular.module('app.services'));