个推,手机推送api的使用
个推的作用:可以为手机端的app使用者推送消息,而不是通过手机上的app对用户发送消息。所以用户是被动的接收信息。当然不只是只有对用户弹出窗口的这种方式,也可以把信息推送给app,让app决定对用户实行怎么样的操作,例如在app的栏目中显示出有新信息的图标,以便提高用户体验。
个推的官网http://www.igetui.com/
该api支持Android和iso的推送。
下载个推的sdk,里面有各种不同文档,其中有android的apk的安装文件,可以进行推送的测试。
- /**
- * 推送的基类
- * @author hj
- */
- public abstract class PushBase {
- protected static final String APPID = "b03c5cfef65ed30108f0a3fd82c3f6b4";
- protected static final String APPKEY = "110000";
- protected static final String MASTERSECRET = "a02a76119b20d4e31620d7597a3b4f35";
- protected static final String CLIENTID = "f8b14fc288a21bc3d675190e9a4db0a4";
- protected static final String API = "http://sdk.open.api.igexin.com/apiex.htm"; //OpenService接口地址
- protected static String getDate(){
- Date date = new Date();
- return date.toLocaleString();
- }
- }
对多个app进行推送:
- import java.util.ArrayList;
- import java.util.List;
- import com.gexin.rp.sdk.base.IIGtPush;
- import com.gexin.rp.sdk.base.IPushResult;
- import com.gexin.rp.sdk.base.impl.AppMessage;
- import com.gexin.rp.sdk.http.IGtPush;
- import com.gexin.rp.sdk.template.LinkTemplate;
- public class PushMessageToAppTest extends PushBase{
- public static void main(String[] args) {
- // 推送主类
- IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);
- try {
- AppMessage message = new AppMessage();
- //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以LinkTemplate为例
- //在通知栏显示一条含图标、标题等的通知,用户点击可打开您指定的网页
- LinkTemplate template = new LinkTemplate();
- template.setAppId(APPID); //应用APPID
- template.setAppkey(APPKEY); //应用APPKEY
- //通知属性设置:如通知的标题,内容
- template.setTitle("填写通知标题"); // 通知标题
- template.setText("填写通知内容"); // 通知内容
- template.setLogo("hello.png");
- // template.setIsRing(true); // 收到通知是否响铃,可选,默认响铃
- // template.setIsVibrate(true); // 收到通知是否震动,可选,默认振动
- // template.setIsClearable(true); // 通知是否可清除,可选,默认可清除
- template.setUrl("http://baidu.com"); //点击通知后打开的网页地址,你可以设定你希望跳转的网页地址如http://www.igetui.com
- message.setData(template);
- // message.setOffline(true); //用户当前不在线时,是否离线存储,可选,默认不存储
- // message.setOfflineExpireTime(72 * 3600 * 1000); //离线有效时间,单位为毫秒,可选
- List<String> appIdList = new ArrayList<String>();
- appIdList.add(APPID);
- List<String> phoneTypeList = new ArrayList<String>();//通知接收者的手机操作系统类型,可选
- phoneTypeList.add("ANDROID");
- List<String> provinceList = new ArrayList<String>(); //通知接收者所在省份,可选
- provinceList.add("浙江");
- provinceList.add("上海");
- provinceList.add("北京");
- List<String> tagList = new ArrayList<String>(); //通知接收者的标签用户,可选
- tagList.add("填写tags名称");
- message.setAppIdList(appIdList);
- message.setPhoneTypeList(phoneTypeList);
- message.setProvinceList(null);
- message.setTagList(null);
- IPushResult ret = push.pushMessageToApp(message);
- System.out.println(ret.getResponse().toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
对单个app的多个用户进行推送:
- import java.util.ArrayList;
- import java.util.List;
- import com.gexin.rp.sdk.base.IIGtPush;
- import com.gexin.rp.sdk.base.IPushResult;
- import com.gexin.rp.sdk.base.impl.ListMessage;
- import com.gexin.rp.sdk.base.impl.Target;
- import com.gexin.rp.sdk.http.IGtPush;
- import com.gexin.rp.sdk.template.NotificationTemplate;
- //可接收多个用户,最多为50个
- public class PushMessageToListTest extends PushBase{
- public static void main(String[] args) {
- //显示每个用户的用户状态,false:不显示,true:显示
- System.setProperty("gexin.rp.sdk.pushlist.needDetails", "true");
- // 推送主类
- IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);
- try {
- ListMessage message = new ListMessage();
- //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以NotificationTemplate为例
- //在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用
- NotificationTemplate template = new NotificationTemplate();
- template.setAppId(APPID); //应用APPID
- template.setAppkey(APPKEY); //应用APPKEY
- //通知属性设置:如通知的标题,内容
- template.setTitle("此处填写通知标题"+getDate()); // 通知标题
- template.setText("此处填写通知内容"+getDate()); // 通知内容
- template.setLogo("push.png"); // 通知图标,需要客户端开发时嵌入
- template.setIsRing(false); // 收到通知是否响铃,可选,默认响铃
- // template.setIsVibrate(true); // 收到通知是否震动,可选,默认振动
- template.setIsClearable(true); // 通知是否可清除,可选,默认可清除
- template.setTransmissionType(2); // 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
- template.setTransmissionContent("你需要透传的内容"+getDate()); // 透传内容(点击通知后SDK将透传内容传给你的客户端,需要客户端做相应开发)
- message.setData(template);
- // message.setOffline(true); //用户当前不在线时,是否离线存储,可选,默认不存储
- // message.setOfflineExpireTime(72 * 3600 * 1000); //离线有效时间,单位为毫秒,可选
- // 接收者
- List<Target> targets = new ArrayList<Target>();
- Target target1 = new Target();
- // Target target2 = new Target(); //如果需要可设置多个接收者
- target1.setAppId(APPID); //接收者安装的应用的APPID
- target1.setClientId(CLIENTID); //接收者的ClientID
- //如需,可设置多个接收者
- // target2.setAppId(APPID2); //接收者2安装应用的APPID
- // target2.setClientId(CLIENTID2); //接收者2的ClientID
- targets.add(target1);
- // targets.add(target2);
- //推送前通过该接口申请“ContentID”
- String contentId = push.getContentId(message);
- IPushResult ret = push.pushMessageToList(contentId, targets);
- System.out.println(ret.getResponse().toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
对单个app的单个用户进行推送:
- import com.gexin.rp.sdk.base.IIGtPush;
- import com.gexin.rp.sdk.base.IPushResult;
- import com.gexin.rp.sdk.base.impl.SingleMessage;
- import com.gexin.rp.sdk.base.impl.Target;
- import com.gexin.rp.sdk.http.IGtPush;
- import com.gexin.rp.sdk.template.TransmissionTemplate;
- //对单个用户推送
- public class PushMessageToSingleTest extends PushBase{
- public static void main(String[] args) {
- // 推送主类
- IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);
- try {
- //单推消息类型
- SingleMessage message = new SingleMessage();
- //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以TransmissionTemplate为例
- //数据经SDK传给您的客户端,由您写代码决定如何处理展现给用户
- TransmissionTemplate template = new TransmissionTemplate();//透传方式
- template.setAppId(APPID);
- template.setAppkey(APPKEY);
- template.setTransmissionContent("您需要透传的内容:"+getDate());
- //收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
- template.setTransmissionType(1);
- message.setData(template);
- // message.setOffline(true); //用户当前不在线时,是否离线存储,可选
- // message.setOfflineExpireTime(72 * 3600 * 1000); //离线有效时间,单位为毫秒,可选
- Target target1 = new Target();
- target1.setAppId(APPID);
- target1.setClientId(CLIENTID);
- //单推
- IPushResult ret = push.pushMessageToSingle(message, target1);
- System.out.println(ret.getResponse().toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- import com.gexin.rp.sdk.base.IIGtPush;
- import com.gexin.rp.sdk.base.IPushResult;
- import com.gexin.rp.sdk.base.impl.SingleMessage;
- import com.gexin.rp.sdk.base.impl.Target;
- import com.gexin.rp.sdk.http.IGtPush;
- import com.gexin.rp.sdk.template.NotyPopLoadTemplate;
- public class PushMessageToSingleTest1 extends PushBase{
- public static void main(String[] args) {
- // 推送主类
- IIGtPush push = new IGtPush(API, APPKEY, MASTERSECRET);
- try {
- // 单推消息类型
- SingleMessage message = new SingleMessage();
- //通知栏弹框下载模版
- //在通知栏显示一条含图标、标题等的通知,用户点击后弹出框,用户可以选择直接下载应用或者取消下载应用。
- NotyPopLoadTemplate template = new NotyPopLoadTemplate();
- // 是否激活
- template.setActived(true);
- // 安卓标识
- template.setAndroidMark("android_mark");
- template.setAppId(APPID);
- template.setAppkey(APPKEY);
- // 是否自动安装
- template.setAutoInstall(true);
- // 是否响铃
- template.setBelled(true);
- // 通知是否可清除
- template.setCleared(true);
- // 苹果标识
- template.setIphoneMark("iphone_mark");
- // 下载图标
- template.setLoadIcon("");
- // 下载标题
- template.setLoadTitle("LoadTitle");
- // 下载地址
- template.setLoadUrl("http://dizhensubao.igexin.com/dl/com.ceic.apk");
- // 通知栏内容
- template.setNotyContent("NotyContent");
- // 通知栏图标
- template.setNotyIcon("");
- // 通知栏标题
- template.setNotyTitle("NotyTitle");
- // 左侧按钮名称
- template.setPopButton1("下载");
- // 右侧按钮名称
- template.setPopButton2("取消");
- // 弹框内容
- template.setPopContent("popContent");
- // 弹框图标
- template.setPopImage("");
- // 弹框标题
- template.setPopTitle("PopTitle");
- // 塞班标识
- template.setSymbianMark("symbian_mark");
- // 是否震动
- template.setVibrationed(true);
- message.setData(template);
- message.setOffline(true);
- message.setOfflineExpireTime(72 * 3600 * 1000);
- // 设置优先级
- message.setPriority(1);
- Target target1 = new Target();
- target1.setAppId(APPID);
- target1.setClientId(CLIENTID);
- // 单推
- IPushResult ret = push.pushMessageToSingle(message, target1);
- System.out.println(ret.getResponse().toString());
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
个推,手机推送api的使用的更多相关文章
- Python人脸识别 + 手机推送,老板来了你就会收到短信提示
- 百度收录检测并主动推送API(实时 mip推送通用)
简要描述: 百度收录检测并主动推送API(实时) 请求URL: api.bigjiji.com/baiduCheck_123456 调用方式: img标签 参数: 参数名 必选 类型 说明 site ...
- Jasper:推送 API
ylbtech-Jasper:推送 API Control Center 还维护一个“推送 API”系统,一旦发生特定事件,就会向应用程序发送编程通知.例如,您可能选择在设备接近流量上限时收到通知.或 ...
- 2019-11-29-dotnet-使用-Qpush-快速从电脑到手机推送文字
title author date CreateTime categories dotnet 使用 Qpush 快速从电脑到手机推送文字 lindexi 2019-11-29 08:58:57 +08 ...
- 2019-1-29-dotnet-使用-Qpush-快速从电脑到手机推送文字
title author date CreateTime categories dotnet 使用 Qpush 快速从电脑到手机推送文字 lindexi 2019-01-29 16:22:56 +08 ...
- dotnet 使用 Qpush 快速从电脑到手机推送文字
在手机打字总不是方便,于是就有了 Qpush 这个工具,通过这个工具可以快速从电脑到手机推送文字. 但是这个工具没有找到客户端,于是我就给他写了一个库,通过这个库可以快速进行开发 先介绍QPush 快 ...
- 手把手教你搞定个推iOS推送SDK集成
以下是一位开发者在集成个推iOS推送SDK过程中的真实经历. 作者:Ezreallp 一次偶然的机会,公司的项目要用到推送,我自己本来就很懒,不愿意去弄整套APNS的流程,刚好之前跟朋友聊起过他们的产 ...
- 个推安卓推送SDK集成步骤详解
以下是一位开发者在集成个推安卓推送SDK时候的亲身经历: 作者:吃饱了想睡. 概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个 ...
- 手机版地图api
手机版地图api一: <iframe style="height:300px;" src="http://map.baidu.com/mobile/webapp/s ...
随机推荐
- laravel redis
安装配置redis服务器 $ wget http://download.redis.io/releases/redis-3.0.5.tar.gz $ tar xzf redis-.tar.gz $ c ...
- JS脚本文件的位置对页面加载性能影响以及无阻塞脚本(javascript)模式
JS的阻塞特性:当<script>出现的时候,页面必须等待脚本文件的加载.解析.执行完毕后才能继续进行页面的渲染.不管脚本文件是以内联形式还是外部引入的形式出现在<script> ...
- 模块加载----Webpack
一.配合gulp编译sass与压缩js 1.安装node.js 2.全局安装webpack 打开npm窗口执行 npm install webpack –g 3. 在项目中使用webpack 使用np ...
- 在C#中获取如PHP函数time()一样的时间戳
原文:在C#中获取如PHP函数time()一样的时间戳 c#中没有象PHP一样的time()时间戳函数,但有DateTime.Now.Ticks用来计算时间差. 此属性的值为自 0001 年 1 月 ...
- JS之原型对象
1.__proto__ 每个对象都有一个__proto__属性,指向该对象的原型对象 <script> var person = function(name,city){ this.nam ...
- 前台 JSON对象转换成字符串 相互转换 的几种方式
在最近的工作中,使用到JSON进行数据的传递,特别是从前端传递到后台,前台可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,后台使用requ ...
- echo 输入指定空白字符
ansible-direc:~ # echo -n "starting service....";echo -ne "\033[50G";echo " ...
- MVC模式--DropDownList数据绑定
DropDownList数据绑定 在控制器中Controller中,为前台页面DropDownList准备的数据 List<bookInfo> bookList = bookManger. ...
- react 评论列表插入评论数据 unshift
// unshift 新增数据放到最上面 //插入 回复/发表 评论else if(action.type === INSERT_COMMENT ){ let content = action.tex ...
- Velocity(9)——宏
定义宏和使用宏 #macro指令用于定义一个VTL模板的重复代码块——宏.下面是一个简单的定义宏的例子: #macro( d ) <tr><td></td>< ...