XingeUtil.java /** * * 项目名称: * 类名称:XingeUtils.java * 类描述: * 创建人: * 创建时间:上午11:44:34 * 修改人: * 修改时间:上午11:44:34 * 修改备注: * @version * */ package com.fjxhx.business.system.util; import java.util.List; import org.json.JSONObject; import com.tencent.xinge.ClickAction; import com.tencent.xinge.Message; import com.tencent.xinge.MessageIOS; import com.tencent.xinge.Style; import com.tencent.xinge.TagTokenPair; import com.tencent.xinge.XingeApp; public class XingeUtils { private static String androidAccessID = "21001144"; private static String androidSecretKey = "6e3dbb19433e0793d22cea0a17c45"; private static String iosAccessID = "2200145"; private static String iosSecretKey = "9a384f2b219d75fc7a085965a922"; // private static String androidAccessID; // private static String androidSecretKey; // // private static String iosAccessID; // private static String iosSecretKey; private static XingeUtils instance; private static XingeApp androidPush; private static XingeApp iosPush; private static Message message; private static MessageIOS iosmsg; private XingeUtils() { // androidAccessID = PropertiesUtil.getConfigProperty("androidAccessID"); // androidSecretKey = PropertiesUtil.getConfigProperty("androidSecretKey"); // iosAccessID = PropertiesUtil.getConfigProperty("iosAccessID"); // iosSecretKey = PropertiesUtil.getConfigProperty("iosSecretKey"); androidPush = new XingeApp(Long.valueOf(androidAccessID), androidSecretKey); iosPush = new XingeApp(Long.valueOf(iosAccessID), iosSecretKey); Style style = new Style(0,1,1,1,0,1,0,1); message = new Message(); message.setTitle("滴哒洗车"); message.setType(Message.TYPE_NOTIFICATION); message.setStyle(style); ClickAction action = new ClickAction(); action.setActivity("com.fjsoft.dida.carwash.HomePageActivity"); message.setAction(action); iosmsg = new MessageIOS(); iosmsg.setSound("beep.wav"); } public static synchronized XingeUtils getInstance() { if (instance == null) { instance = new XingeUtils(); } return instance; } public String pushAllAndroid() { JSONObject jo = XingeApp.pushAllAndroid(Long.valueOf(androidAccessID), androidSecretKey, "标题", "我爱你,中国djfjdssdl!"); return jo.toString(); } public void pushSingleAccount(int deviceType,String account,String content){ message.setContent(content); System.out.println(androidPush.pushSingleAccount(deviceType, account, message).toString()); } public void pushSingleAccountForIOS(int deviceType,String account,String content){ iosmsg.setAlert(content); System.out.println(iosPush.pushSingleAccount(deviceType, account, iosmsg, XingeApp.IOSENV_PROD).toString()); } public void pushAccountList(int deviceType,List<String> accountList,String content){ message.setContent(content); System.out.println(androidPush.pushAccountList(deviceType, accountList, message).toString()); } public void pushAccountListForIOS(int deviceType,List<String> accountList,String content){ iosmsg.setAlert(content); System.out.println(iosPush.pushAccountList(deviceType, accountList, iosmsg, XingeApp.IOSENV_PROD).toString()); } // android使用 public String pushSingleDevice(String deviceToken,String content){ message.setContent(content); return androidPush.pushSingleDevice(deviceToken, message).toString(); } // IOS public JSONObject pushSingleDevice(String deviceToken, MessageIOS message, int environment) { return iosPush.pushSingleDevice(deviceToken, message, environment); } public String batchSetTag(List<TagTokenPair> pairs){ return androidPush.BatchSetTag(pairs).toString(); } public String batchDelTag(List<TagTokenPair> pairs){ return androidPush.BatchDelTag(pairs).toString(); } //android使用 public String pushTags(int deviceType,List<String> tagList,String tagsOp,String content){ message.setContent(content); return androidPush.pushTags(deviceType, tagList, tagsOp, message).toString(); } public static void main(String[] args) { // System.out.println(XingeUtils.getInstance().pushAllAndroid()); // String deviceToken = "d9fe6ef4941490494b08b1e4c0991a325a3aeb38"; // String iosToken = "e6f537ad1793d56c441a670d2321f9b9694309f4ac4211af2faab5592832165f"; // //依次为$builderId[,$ring][,$vibrate][,$clearable][,$nId][,$lights][,$iconType][,$styleId] //// System.out.println(XingeUtils.getInstance().pushSingleDevice(deviceToken, message)); //// System.out.println(XingeUtils.getInstance().pushSingleDevice(iosToken, iosmsg, 2)); // // List<TagTokenPair> pairs = new ArrayList<TagTokenPair>(); // pairs.add(new TagTokenPair("tag2",deviceToken)); // System.out.println("设置标签:"+XingeUtils.getInstance().batchSetTag(pairs)); // // List<String> tagList = new ArrayList<String>(); // tagList.add("tag1"); // tagList.add("tag2"); // // System.out.println(XingeUtils.getInstance().pushTags(0, tagList, "OR", message)); // XingeUtils.getInstance().pushSingleAccount(0, "13705068516", "jkljlkjoiuoiuo"); // XingeUtils.getInstance().pushSingleAccountForIOS(0, "13705068516", "uweoiuup", 2); // System.out.println(XingeUtils.getInstance().pushSingleAccount(0, "12345678901", "dfddsiuouo")); // List<TagTokenPair> pairs = new ArrayList<TagTokenPair>(); // // pairs.add(new TagTokenPair("12345678901", "0f4c4beaf13518b748619e3d47267ed9ee905dd8")); // // System.out.println(XingeUtils.getInstance().batchDelTag(pairs)); // System.out.println(XingeUtils.getInstance().pushSingleDevice("0f4c4beaf13518b748619e3d47267ed9ee905dd8", "iuhuouipipoi")); // // System.out.println(XingeUtils.getInstance().batchSetTag(pairs)); // // List<String> tagList = new ArrayList<String>(); // tagList.add("12345678901"); // System.out.println(XingeUtils.getInstance().pushTags(0, tagList, "OR", "yuiyououiuou")); XingeUtils.getInstance().pushSingleAccountForIOS(0, "12345678901", "wwuwiwowo"); XingeUtils.getInstance().pushSingleAccount(0, "12345678901", "wwuwiwowo"); } }
调用:
XingeUtils.getInstance().pushSingleAccountForIOS(0, "12345678901", "wwuwiwowo");
XingeUtils.getInstance().pushSingleAccount(0, "12345678901", "wwuwiwowo");
——————————————
接口:
public interface FwhtemplateService {
public void send(String appid, String secret, FwhTemplateModel model) throws Exception;
public void sendOrderToAdmin(OrderModel o) throws Exception;
public void sendOrderToCustom(OrderModel o) throws Exception;
public void sendOrderSuccess(OrderModel o) throws Exception;
public void sendMessageToWorker(OrderModel o) throws Exception;
}
接口实现:
@Override
public void sendMessageToWorker(OrderModel o) throws Exception {
BaseDao dao = this.getDao();
WorkerModel worker=(WorkerModel) dao.selectObject("order.getWorker", o);
StringBuffer sb = new StringBuffer();
sb.append("【手机号码:");
sb.append(o.getTel());
sb.append("】【 支付时间:");
sb.append(DateUtil.newDate());
sb.append("】【订单编号:");
sb.append(o.getOrderNum());
sb.append("】");
if(Constants.IOS.equals(worker.getOs())){
XingeUtils.getInstance().pushSingleAccountForIOS(0, worker.getWorkerPhone().toString(),sb.toString());
}else{
XingeUtils.getInstance().pushSingleAccount(0, worker.getWorkerPhone().toString(),sb.toString());
}
}
相关推荐
在 `config/app.php` 的 `aliases` 数组中添加 `'Xinge' => Vendor\XingeSDK\Laravel\Facades\Xinge::class`,这样你就可以在任何地方通过 `Xinge::` 来调用 Xinge 的方法。 5. **实际推送操作** 现在你已经可以...
4. 兼容层:编写兼容层代码,使得代码在Python2和Python3中都能运行,但这种方法可能会增加代码复杂性。 总之,这个项目展示了在面对遗留服务与新语言版本冲突时,开发者如何通过技术手段解决兼容性问题,保持项目...
3. **API使用**:详细解释各种API的使用方法,如创建推送任务、设置推送目标(单个设备、标签、广播等)、设置消息内容和推送时间。 4. **消息构建**:说明如何构造推送消息,包括标题、内容、通知类型(静默、显示...
在PHP环境中,直接使用这个封装好的类库,开发者无需深入研究信鸽推送的复杂API,只需简单引入类文件,调用相应方法,就能完成推送任务。 XingeApp.php 文件可能是整个封装的核心,它可能包含了连接信鸽服务的基本...
4. **处理接收消息**:创建一个继承自`XGPushReceiver`的自定义接收器,重写`onNotificationMessageArrived`和`onNotificationMessageClicked`方法,以处理接收到的消息和用户点击通知的事件。 5. **权限配置**:...
Master Branch:xingePushJavaApi概述 是腾讯云提供的一款支持百亿级消息的移动App推送平台,...可以查看引用SDK方法一:使用maven库(推荐)在项目pom.xml中引入依赖项<repositories><repository><id>xingePush</id><url>...
5. **发送消息**:调用PushClient的相关方法,如push_message_to_device(),将消息发送出去。 6. **处理响应**:接收到SDK返回的结果后,解析并处理,检查推送是否成功,如有错误则进行相应处理。 7. **监控与优化...
详细使用方法见Demo,建议前往git下载最新demo github地址 https://github.com/xinge1/LXWaveProgress 博客地址 http://www.jianshu.com/p/0327ea46d1bc
使用方法 1.导入 #import "LiuXSlider.h" 2.初始化方法 LiuXSlider *slider=[[LiuXSlider alloc] initWithFrame:CGRectMake(50, 50, 300, 50) titles:@[@"1000元",@"2000元",@"3000元",@"4000元",@"5000元",@...
在本案例中,作者xinge1创建了一个名为LiuXSegment的自定义版本,它可能提供了比原生Segment Control更丰富的样式、交互和功能。 描述中提到,LiuXSegment是作者自定义的,灵感可能来源于网易产品的设计,这可能...
本篇研究论文的标题为《基于局部区域的嘴唇追踪方法》,作者是Yiu-ming Cheung、Xin Liu和Xinge You。该论文发表于2012年的《模式识别》期刊,具体的内容概述和关键词涉及到嘴唇追踪技术的发展。嘴唇追踪技术是唇读...
这个项目由作者xinge1编写,源码库名为LXWaveProgress,它提供了一种简单易用的方式,帮助开发者在iOS应用中实现自定义的波纹进度动画。 LXWaveProgress库的核心功能是创建一种类似于水波纹扩散的效果,同时结合...
集合论是离散数学的基础之一,涉及到集合的概念、集合间的运算(并集、交集、差集、补集)、笛卡尔积以及集合的表示方法等。理解和掌握集合论是学习离散数学的前提。 #### 2. 数理逻辑 数理逻辑研究命题和谓词的...
- 使用双重循环,外层控制排序轮次,内层控制每轮比较次数。 - 每轮遍历过程中,相邻两个元素进行比较,若前一个元素比后一个元素大,则交换它们的位置。 #### 2. 快速排序 - **定义**:快速排序是一种非常高效的...
动态规划是一种解决多阶段决策问题的方法,它通过将原问题分解为互相重叠的子问题,利用子问题的解来构建原问题的解。动态规划的关键在于确定状态转移方程,即如何从前一个或前几个状态转移到当前状态。 ### 知识点...
根据给定的信息,我们可以深入探讨几种常见的排序算法...而希尔排序通过引入增量序列有效提高了插入排序的效率,是一种较为高效的排序方法。理解这些算法的基本原理及其代码实现对于深入学习数据结构与算法非常有帮助。