导航:首页 > 编程语言 > 极光推送java设置别名

极光推送java设置别名

发布时间:2021-12-09 10:45:03

1. 极光推送java服务器怎么注册别名

别名要在客户端注册,也就是安卓和iOS客户端注册,如果要在服务端控制,只能通过自定义消息推送到客户端然后让客户端来修改

2. 请教高手,极光推送的别名alias和标签tag分别是什么意思啊看不懂

:标签就是为了区分用户,
比如说把设置这个用户的tag为a,其他用户的tag为b。
推送消息的时候可以选择推送的tag,填个a,就只有tag为a的用户能收到

3. java调用Jpush API,请问怎么修改API,让JUPSH定时推送

java调用Jpush API,请问怎么修改API,让JUPSH定时推送
jpush官方管理推送的页面具有各种推送功能选项,如果要推送单个用户,前提是你的软件在运行的时候注册了别名或者是标签: 别名 alias 为安装了应用程序的用户,取个别名来标识。以后给该用户 Push 消息时,就可以用此别名来指定。

4. 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);
}

}

5. android 极光推送问题 如何清除别名和标签的绑定

重新调用setAlias, 给一个""的空字符串就可以

文档部分如下:

6. 极光推送别名跟设备怎么绑定的

为安装了应用程序的用户,取个别名来标识。以后给该用户 Push 消息时,就可以用此别名来指定。
每个用户只能指定一个别名。
同一个应用程序内,对不同的用户,建议取不同的别名。这样,尽可能根据别名来唯一确定用户。
系统不限定一个别名只能指定一个用户。如果一个别名被指定到了多个用户,当给指定这个别名发消息时,服务器端 API 会同时给这多个用户发送消息

7. 极光推送,在推送之前,是否能够查询,极光推送服务器是否存在该别名

那就直接try catch,至少程序不报错 try{    $jpush->send($param); } catch(\Exception $e){ // }

8. android 极光推送 设置别名

应该不会不成功的呀?如果不行的话 你就写在 actiity 中呀! 你是 用API 版么?我们的app 的推送就是我用 极光的 api 开发的。有问题可以问我。欢迎采纳。

9. php极光推送怎么绑定别名

方法如下:
public void save(){
try {
FileOutputStream outStream=this.openFileOutput("a.txt",Context.MODE_WORLD_READABLE);
outStream.write(text.getText().toString().getBytes());
outStream.close();
Toast.makeText(MyActivity.this,"Saved",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
return;
}

阅读全文

与极光推送java设置别名相关的资料

热点内容
外国两个男的在火车上看到女人喂小孩奶 浏览:165
免费看片的网站你懂得 浏览:874
手机word查找 浏览:656
黑人英语老师 浏览:195
含糖1v1荔枝txt下载 浏览:529
红羊出品的真军电影都有哪些 浏览:85
韩污网站 浏览:900
checkboxjs取值 浏览:731
日本的一部密室电影推荐 浏览:531
编程软件哪个开发快 浏览:638
台湾娃娃影片 浏览:998
安卓手机app怎么转移新手机 浏览:361
家教高级课程女主角是谁 浏览:886
维语电影在哪放 浏览:507
姜恩惠类似电影合集 浏览:639
女人和蛇伦理片 浏览:726
他们经常去哪里看电影 浏览:941
office2003强力卸载工具 浏览:787
阳根修炼变大的小说 浏览:233
对比文件夹内容 浏览:410

友情链接