『壹』 求一份极光推送消息的java服务端代码,对外提供调用的接口
你的意思应该就是提供一个创建推送消息的rest接口吧
官网上默认的创建消息方式是在网页上手动操作,你需要自动化这个填写过程,是不是这意思?
『贰』 极光推送java服务端完成后怎么发送消息
setEnableSSL boolean enableSSL (true为使用ssl, 默认为不使用ssl) 是否启动ssl安全连接
sendNotificationWithImei
int sendNo(发送编号),
String imei (IMEI字符串) ,
String msgTitle (消息标题专/通知标题) ,
String msgContent (消息内容/通知内属容) 发送带IMEI的通知
sendNotificationWithImei int sendNo ,
String imei ,
String msgTitle ,
String msgContent ,
int builderId (自定义通知栏样式Id) ,
Map<String, Object>extra (附属信息) 自定义通知栏(没有则填写0)
以及传递附属信息
sendCustomMessageWithImei
int sendNo ,
String imei ,
String msgTitle ,
String msgConte
『叁』 java极光推送怎么调用自定义消息接口
// 对来android和ios设备发源送
JPushClient jpush = new JPushClient(masterSecret, appKey);
// 对android和ios设备发送,同时指定离线消息保存时间
JPushClient jpush = new JPushClient(masterSecret, appKey, timeToLive);
// 指定某种设备发送
JPushClient jpush = new JPushClient(masterSecret, appKey, DeviceEnum.Android);
// 指定某种设备发送,并且指定离线消息保存时间
JPushClient jpush = new JPushClient(masterSecret, appKey, timeToLive, DeviceEnum.IOS);
『肆』 极光推送java sdk怎么使用
是的,都是一样的,但是ios需要上传APNS推送环境APNs证书文件 建议你创建好应用后,直接下载极光的推送demo 另外,你也可以使用网络云推送,是免费的
『伍』 在myeclipse中怎么运行极光推送的客户端demo
1,android studio如何加载极光推送的jar包和.so库文件.
2,如何获取附加字段里的键对应的值.
3,如何点击通知栏通版知进入webView加载页权面.
4,如何把推送过来的消息进行存储,并以listView显示,便于查看推送历史.
5,如何点击listView的item,进行网页跳转,再次进入webView加载页面.
6,如何为推送设置免打扰时段.(官方demo).
『陆』 如何写一个android 极光推送demo
,android studio如何来加载极光推源送的jar包和.so库文件.
2,如何获取附加字段里的键对应的值.
3,如何点击通知栏通知进入webView加载页面.
4,如何把推送过来的消息进行存储,并以listView显示,便于查看推送历史.
5,如何点击listView的item,进行网页跳转,再次进入webView加载页面.
6,如何为推送设置免打扰时段.(官方demo).
『柒』 极光推送demo ios 怎么使用
如过程序在后台或者正在运行走的是这个方法要注意,在application didlaunch里获取版一下push的参数权如果获取到了就是用户点击推送消息启动的程序,没获取到就是正常启动程序,如果程序已经在运行(后台或者前台)就会走你这个方法,这时候你可以让...
『捌』 ios中极光推送的demo怎么报错
如过程序在后台或者正在运行走的是这个方法要注意,在application didlaunch里获取一下push的参数如果获取到了就是用户点击推送消息启动的程序,没获取到就是正常启动程序,如果程序已经在运行(后台或者前台)就会走你这个方法,这时候你可以让...
『玖』 极光推送java服务端怎么使用
保存离线消息的时长。秒为单位。最多支持10天(864000秒)。
0 表示该消息不保存离版线。
即:用户权在线马上发出,当前不在线用户将不会收到此消息。
此参数不设置则表示默认,默认为保存1天的离线消息(86400秒)。
『拾』 jpush推送java后台怎么调用
开发的时候需要引用appache的包commons-httpclient.jar 、commons-codec.jar、commons-logging.jar这些包可以到官网上下载,如果有需要的话也我也可以发给你。
引入上述这些包之后,就可以进行开发了。
这里需要特别说明的两点是:
1、通过 HttpClient client = new DefaultHttpClient(); 获得HttpClient对象不支持https,需要自己重写。
2、我们的MD5编码要和服务器那边的一样。(我用我自己写的MD5编码验证的时候,总是验证失败,后来跟他们的技术人员要了他们的md5的实现方式就通过验证了)
好了,废话不多说了,接下来是贴代码的时候了:
类MySSLSocketFactory用来实现对https的支持
[java] view plain
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.conn.ssl.SSLSocketFactory;
public class MySSLSocketFactory extends SSLSocketFactory {
SSLContext sslContext = SSLContext.getInstance("TLS");
public MySSLSocketFactory(KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(truststore);
TrustManager tm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
sslContext.init(null, new TrustManager[] { tm }, null);
}
@Override
public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, UnknownHostException {
return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
}
@Override
public Socket createSocket() throws IOException {
return sslContext.getSocketFactory().createSocket();
}
}
类ClientUtil 获取可以支持https的HttpClient对象,调用MySSLSocketFactory 来取得
[java] view plain
import java.security.KeyStore;
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HTTP;
public class ClientUtil {
public static HttpClient getNewHttpClient() {
try {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);
SSLSocketFactory sf = new MySSLSocketFactory(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme("https", sf, 443));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
return new DefaultHttpClient(ccm, params);
} catch (Exception e) {
e.printStackTrace();
return new DefaultHttpClient();
}
}
}
接下来就是调用JPush的api来推送消息了
[java] view plain
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
/**
* 调用远程api实现推送
* @author naiyu
*
*/
public class PushMsgUtil {
// public static final String PUSH_URL = "https://api.jpush.cn:443/sendmsg/sendmsg";
public static final String PUSH_URL = "http://api.jpush.cn:8800/sendmsg/sendmsg";
public static void pushMsg(String msg) {
BasicNameValuePair name = new BasicNameValuePair("username", "test"); //用户名
BasicNameValuePair sendno = new BasicNameValuePair("sendno", "3621"); // 发送编号。由开发者自己维护,标识一次发送请求
BasicNameValuePair appkeys = new BasicNameValuePair("appkeys", "your appkeys"); // 待发送的应用程序(appKey),只能填一个。
BasicNameValuePair receiver_type = new BasicNameValuePair("receiver_type", "4");
//验证串,用于校验发送的合法性。
BasicNameValuePair verification_code = new BasicNameValuePair("verification_code", getVerificationCode());
//发送消息的类型:1 通知 2 自定义
BasicNameValuePair msg_type = new BasicNameValuePair("msg_type", "1");
BasicNameValuePair msg_content = new BasicNameValuePair("msg_content", msg);
//目标用户终端手机的平台类型,如: android, ios 多个请使用逗号分隔。
BasicNameValuePair platform = new BasicNameValuePair("platform", "android");
List<BasicNameValuePair> datas = new ArrayList<BasicNameValuePair>();
datas.add(name);
datas.add(sendno);
datas.add(appkeys);
datas.add(receiver_type);
datas.add(verification_code);
datas.add(msg_type);
datas.add(msg_content);
datas.add(platform);
try {
HttpEntity entity = new UrlEncodedFormEntity(datas, "utf-8");
HttpPost post = new HttpPost(PUSH_URL);
post.setEntity(entity);
HttpClient client = ClientUtil.getNewHttpClient();
HttpResponse reponse = client.execute(post);
HttpEntity resEntity = reponse.getEntity();
System.out.println(EntityUtils.toString(resEntity));
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static String getVerificationCode() {
String username = "test"; //username 是开发者Portal帐户的登录帐户名
String password = "pasword";
int sendno = 3621;
int receiverType = 4;
String md5Password = StringUtils.toMD5(password);; //password 是开发者Portal帐户的登录密码
String input = username + sendno + receiverType + md5Password;
String verificationCode = StringUtils.toMD5(input);
return verificationCode;
}
public static void main(String[] args) {
String msg = "{\"n_title\":\"来点外卖\",\"n_content\":\"你好\"}";
System.out.println(msg);
PushMsgUtil.pushMsg(msg);
}
}