打开指定html页面,openInfoUtils.js:
function openInfoPage(isPush){ var notificationId = ""; var title = ""; var message= ""; var uri = ""; var msgId = ""; if(isPush){ window.plugins.pushNotificationPlugin.startService("getsharedata", function(r){ notificationId = r.notificationId; title = r.title; message = r.message; uri = r.uri; msgId = r.messageId; if(uri=="taskFormRead4Push"){ wellApp.openWellWindow("threePage",{ contentId : uri, contentIntent : { headerTitle : '待办任务', unid : msgId, rwmc : title, } }); }else if(uri=="taskhomeRead4Push"){ wellApp.openWellWindow("threePage",{ contentId : uri, contentIntent : { headerTitle : '待办事件', unid : msgId, sjmc : title, } }); }else if(uri=="tzggForPush"){ wellApp.openWellWindow('articleInfo', { unid : msgId, index : "1", }); } },null, []); } }
PushBean.java:
package com.linewell.qzgrid.phone.push; /** * 推送Bean对象 * @author zzhan@linewell.com * @since 2014-5-7 * */ public class PushBean { /** * 推送目的方 */ private String username; /** * 标题 */ private String title; /** * 推送消息 */ private String message; /** * 推送uri */ private String uri; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getUri() { return uri; } public void setUri(String uri) { this.uri = uri; } }
package com.linewell.qzgrid.phone.push; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import javax.xml.namespace.QName; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; //import org.apache.cxf.endpoint.Client; //import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; /** * 推送工具类,提供群推和单推的api * * @author zzhan@linewell.com * @since 2014-05-08 */ public class PushUtils { public static final String SEND_ALL = "sendAll"; public static final String SEND_SINGLE = "sendSingle"; // public static String PUSH_URL = "http://192.168.16.38:7070/Androidpn/service/notification"; // public static String TARGET_NAMESPACE = "http://webservice.linewell.com/"; static RPCServiceClient rpcServiceClient ; public static RPCServiceClient getRpcServiceClient() throws Exception{ if(rpcServiceClient==null){ rpcServiceClient = new RPCServiceClient(); } return rpcServiceClient; } /** * 群推 * * @param bean * 推送的bean对象 * @throws Exception */ public static void sendAll(PushBean bean) throws Exception { if (null == RDUrl.PUSH_URL) throw new RuntimeException("服务地址不能为空!请配置服务地址"); String title = bean.getTitle(); String message = bean.getMessage(); String uri = bean.getUri(); // 1 使用RPC方式调用webService RPCServiceClient rpcServiceClient = getRpcServiceClient(); Options options = rpcServiceClient.getOptions(); // 指定调用webService的URL EndpointReference targetEPR = new EndpointReference(RDUrl.PUSH_URL); options.setTo(targetEPR); // 设置参数 Object[] opAddEntryArgs = new Object[] { title, message, uri}; // 方法的返回对象类型 Class[] classes = new Class[] { String.class }; // wsdl的命名空间及调用的方法 QName opAddEntry = new QName(RDUrl.TARGET_NAMESPACE, SEND_ALL); // 方法调用 String result = (String) rpcServiceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]; rpcServiceClient.cleanupTransport(); // 为了防止连接超时 // RPC end } /** * 单推 * * @param bean * 推送的Bean对象,其中username属性不能为空 * @throws Exception */ public static void sendSingle(PushBean bean) throws Exception { if (null == RDUrl.PUSH_URL) throw new RuntimeException("服务地址不能为空!请配置服务地址"); String title = bean.getTitle(); String message = bean.getMessage(); String uri = bean.getUri(); String username = bean.getUsername(); if (null == username) throw new RuntimeException("请设置PushBean的username属性"); // 1 使用RPC方式调用webService RPCServiceClient rpcServiceClient = getRpcServiceClient(); Options options = rpcServiceClient.getOptions(); // 指定调用webService的URL EndpointReference targetEPR = new EndpointReference(RDUrl.PUSH_URL); options.setTo(targetEPR); // 设置参数 Object[] opAddEntryArgs = new Object[] { title, message, uri, username }; // 方法的返回对象类型 Class[] classes = new Class[] { String.class }; // wsdl的命名空间及调用的方法 QName opAddEntry = new QName(RDUrl.TARGET_NAMESPACE, SEND_SINGLE); // 方法调用 String result = (String) rpcServiceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]; rpcServiceClient.cleanupTransport(); // 为了防止连接超时 // RPC end } }
package com.linewell.qzgrid.phone.push; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import com.linewell.qzgrid.util.ReadProperties; /** * 系统用到的URL路径配置 * @author cjianquan@linewell.com * * @since 2014-8-11 */ public class RDUrl { /** * 推送服务的URL配置 */ public static String PUSH_URL = ""; /** * service的命名空间名称 */ public static final String TARGET_NAMESPACE = "http://webservice.linewell.com/"; static { Properties prop = new Properties(); InputStream in = ReadProperties.class .getResourceAsStream("/androidpnUrl.properties"); // System.out.println(in); try { prop.load(in); PUSH_URL = prop.getProperty("pushUrl").trim(); } catch (IOException e) { e.printStackTrace(); } } }
pushUrl=http://192.168.16.38:7070/Androidpn/service/notification