導航:首頁 > 編程語言 > 極光推送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設置別名相關的資料

熱點內容
數據分析到底是什麼 瀏覽:392
去掉word中的超鏈接 瀏覽:810
官途劉飛全文免費聽小說 瀏覽:131
哪裡免費看電影院正在上映的電影 瀏覽:823
女主掉進了一個山洞 被一堆蛇破了處中了蠱 瀏覽:778
羅曼史法國講的什麼 瀏覽:842
個人社保app有哪些 瀏覽:116
ps文字放在哪個文件夾 瀏覽:563
電影永恆185分鍾迅雷下載 瀏覽:77
女主叫溫暖是男主秘書 瀏覽:747
機器人總動員 eva名字來源 瀏覽:788
沈婼女主 瀏覽:649
少兒編程有哪些項目 瀏覽:833
紅米2支持java嗎 瀏覽:567
抗戰之收編黃埔將軍的小說 瀏覽:319
經典港片網站 瀏覽:911
小說繼母與繼子 瀏覽:613
u盤重裝系統文件顯示不見了 瀏覽:961
我在泰國有條路是哪部電影 瀏覽:562
影城今日放映表 瀏覽:469

友情鏈接