123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- angular.module('push')
- .factory('IMChatService', function ($q, IMChatConfig) {
- return {
- // 初始化MQTT参数配置
- initMQTT: function () {
- mqtt.init(IMChatConfig);
- },
- // 连接MQTT服务器
- connect: function () {
- var deferred = $q.defer();
- mqtt.connect(function (result) {
- deferred.resolve(result);
- },
- function (err) {
- deferred.reject(err);
- });
- return deferred.promise;
- },
- // 断开MQTT服务器
- disconnect: function () {
- var deferred = $q.defer();
- mqtt.disconnect(function (result) {
- deferred.resolve(result);
- },
- function (err) {
- deferred.reject(err);
- });
- return deferred.promise;
- },
- // 订阅主题topic
- subscribe: function (topic, qos) {
- var deferred = $q.defer();
- var option = {
- topic: topic,
- qos: qos
- };
- mqtt.subscribe(option, function (result) {
- deferred.resolve(result);
- },
- function (err) {
- deferred.reject(err);
- });
- return deferred.promise;
- },
- // 取消订阅主题topic
- unsubscribe: function (topic) {
- var deferred = $q.defer();
- mqtt.unsubscribe({topic: topic}, function (result) {
- deferred.resolve(result);
- },
- function (err) {
- deferred.reject(err);
- });
- return deferred.promise;
- },
- // 于主题topic下发布消息
- publish: function (option) {
- var deferred = $q.defer();
- mqtt.publish(option, function (result) {
- deferred.resolve(result);
- },
- function (err) {
- deferred.reject(err);
- });
- return deferred.promise;
- },
- // 于主题topic下发布遗嘱消息
- will: function (topic, message, qos, retain) {
- var option = {
- topic: topic,
- message: message,
- qos: qos,
- retain: retain
- };
- mqtt.will(option);
- },
- // 设置角标消息数
- setBadge: function (num) {
- cordova.plugins.notification.badge.set(num);
- },
- // 增加角标消息数
- increaseBadge: function (num) {
- cordova.plugins.notification.badge.increase(num, function (badge) {
- console.log(badge);
- });
- },
- // 减少角标消息数
- decreaseBadge: function (num) {
- cordova.plugins.notification.badge.decrease(num, function (badge) {
- console.log(badge);
- });
- },
- // 清空角标消息数
- clearBadge: function () {
- cordova.plugins.notification.badge.clear();
- },
- // 获取角标消息数
- getBadge: function () {
- var deferred = $q.defer();
- try {
- cordova.plugins.notification.badge.get(function (badge) {
- deferred.resolve(badge);
- });
- }catch (e){
- deferred.reject(e);
- }
- return deferred.promise;
- }
- }
- });
|