bmobPush

来自于:Bmob立即使用

init push saveLocation addChannel removeChannel

概述

Bmob封装了Bmob后端云SDK中的推送功能,使用此模块可轻松实现推送到各种限制条件的用户端

init

注册应用

init({params}, callback(ret, err))

params

appid:

  • 类型:字符串
  • 默认值:无
  • 描述:从Bmob后端应用管理找到的Application Id,不能为空

callback(ret, err)

ret:

  • 类型:String对象

    用于后面接受推送信息

err:

  • 类型:JSON 对象

内部字段:

  1. {
  2. result:"error" //操作结果
  3. error:"" //操作错误描述
  4. }

示例代码

  1. var bmobPush = api.require('bmobPush');
  2. bmobPush.init({
  3. appid: '1234567890123'
  4. }, function(ret, err) {
  5. if (ret) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

补充说明

注册应用

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

push

推送信息

push({params}, callback(ret, err))

params

content:

  • 类型:字符串
  • 默认值:无
  • 描述:发表的内容,不能为空

type:

  • 类型:字符串
  • 默认值:无
  • 描述:推送规则(详见推送类型常量),不能为空

channel:

  • 类型:字符串
  • 默认值:无
  • 描述:推送到的频道,当type为channel时,该字段有效且不能为空。可用;分隔

ios_deviceToken:

  • 类型:字符串
  • 默认值:无
  • 描述:推送到iOS端的设备token,当type为ios时该字段有效,如果空则表示推送到所有iOS设备,否则推送单个

android_installationId:

  • 类型:字符串
  • 默认值:无
  • 描述:推送到Android端的设备id,当type为android时该字段有效,如果空则表示推送到所有Android设备,否则推送单个

latitude:

  • 类型:double类型
  • 默认值:无
  • 描述:推送到地球上某点一定半径范围内的所有设备,由latitude指示该点的纬度,当type为location时该字段有效,注意纬度的取值范围

longitude:

  • 类型:double类型
  • 默认值:无
  • 描述:推送到地球上某点一定半径范围内的所有设备,由latitude指示该点的经度,当type为location时该字段有效,注意经度的取值范围

distance:

  • 类型:double类型
  • 默认值:无
  • 描述:推送到地球上某点一定半径范围内的所有设备,由distance指示距离该点的范围(单位:公里),当type为location时该字段有效

time:

  • 类型:String类型
  • 默认值:无
  • 描述:按时间推送,推送给最后一次登录在某日期前的用户(不活跃用户),当type为time时该字段有效,是以字符串表示的日期,格式为yyyyMMdd或者yyyyMMddhhmmss

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. result:"succeed" //操作结果
  3. }

err:

  • 类型:JSON 对象

内部字段:

  1. {
  2. result:"error" //操作结果
  3. error:"" //操作错误描述
  4. }

示例代码

  1. //按Android设备ID推送
  2. var type_str = "android";
  3. var installationId = "1234567890"; //请在Bmob后台查看
  4. var content_str = 'Hello from Bmob';
  5. var param = {
  6. content: content_str,
  7. type: type_str,
  8. android_installationId: installationId
  9. };
  10. var resultCallback = function(ret, err) {
  11. document.getElementById("result").innerHTML = JSON.stringify(ret);
  12. if (err) {
  13. api.alert(err);
  14. }
  15. };
  16. var bmobPush = api.require('bmobPush');
  17. bmobPush.push(param, resultCallback);
  1. //按经纬度和范围进行推送
  2. var type_str = "location";
  3. var latitude_double = 23.25;
  4. var longitude_double = 103.66;
  5. var distance_double = 10.00;
  6. var content_str = 'Hello from Bmob';
  7. var param = {
  8. content: content_str,
  9. type: type_str,
  10. latitude: latitude_double,
  11. longitude: longitude_double,
  12. distance: distance_double
  13. };
  14. var resultCallback = function(ret, err) {
  15. document.getElementById("result").innerHTML = JSON.stringify(ret);
  16. if (err) {
  17. api.alert(err);
  18. }
  19. }
  20. var bmobPush = api.require('bmobPush');
  21. bmobPush.push(param, resultCallback);
  1. //给所有用户推送
  2. var type_str = "all";
  3. var content_str = 'Hello from Bmob';
  4. var param = { content: content_str, type: type_str };
  5. var resultCallback = function(ret, err) {
  6. alert(JSON.stringify(ret) + JSON.stringify(err));
  7. }
  8. var bmobPush = api.require('bmobPush');
  9. bmobPush.push(param, resultCallback);

补充说明

推送信息

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

saveLocation

保存地理信息

saveLocation({params}, callback(ret, err))

params

longitude:

  • 类型:double类型
  • 默认值:无
  • 描述:给当前用户设定地理位置,经度,不能为空(地理坐标从其它模块获得)

latitude:

  • 类型:double类型
  • 默认值:无
  • 描述:给当前用户设定地理位置,纬度,不能为空(地理坐标从其它模块获得)

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. result:"succeed" //操作结果
  3. }

err:

  • 类型:JSON 对象

内部字段:

  1. {
  2. result:"error" //操作结果
  3. error:"" //操作错误描述
  4. }

示例代码

  1. //设定本用户经纬度为23.56,130.12
  2. var longitude_double = 130.12;
  3. var latitude_double = 23.56;
  4. var param = { latitude: latitude_double, longitude: longitude_double };
  5. var resultCallback = function(ret, err) {
  6. alert(JSON.stringify(ret) + JSON.stringify(err));
  7. };
  8. var bmobPush = api.require('bmobPush');
  9. bmobPush.saveLocation(param, resultCallback);

补充说明

调用此接口前应通过其它模块获得当前用户所在位置,再调用bmobPush模块保存,请注意检查经纬度的取值范围

可用性

iOS系统,Android系统

可提供的1.0.2及更高版本

addChannel

addChannel({params})

params

channel:

  • 类型:字符串
  • 默认值:无
  • 描述:给当前用户添加频道(相当于给用户贴自定义标签,一个用户可以有多个标签,一个标签有多个用户),不能为空,多个频道可用;分隔

示例代码

  1. //给当前用户添加运动和教育两个频道
  2. var channel_array = 'Sport;Education';
  3. var param = { channel: channel_array };
  4. var resultCallback = function(ret, err) {
  5. document.getElementById("result").innerHTML = JSON.stringify(ret);
  6. if (err) {
  7. api.alert(err);
  8. }
  9. }
  10. var bmobPush = api.require('bmobPush');
  11. bmobPush.addChannel(param, resultCallback);

补充说明

相当于给用户贴自定义标签,一个用户可以有多个标签,一个标签有多个用户,按频道推送时用得上

可用性

iOS系统,Android系统

可提供的1.0.2及更高版本

removeChannel

removeChannel({params})

params

channel:

  • 类型:字符串
  • 默认值:无
  • 描述:给当前用户移除出某频道(相当于给用户去掉自定义标签),不能为空,想移除多个频道可用;分隔

示例代码

  1. //给当前用户移除天气和教育两个频道
  2. var channel_array = 'Weather;Education';
  3. var param = { channel: channel_array };
  4. var resultCallback = function(ret, err) {
  5. alert(JSON.stringify(ret) + JSON.stringify(err));
  6. };
  7. var bmobPush = api.require('bmobPush');
  8. bmobPush.removeChannel(param, resultCallback);

补充说明

相当于给用户将原有的自定义标签删掉

可用性

iOS系统,Android系统

可提供的1.0.2及更高版本

Constant

推送类型

push方法里面type的类型

类型影响的其它参数说明
all给所有用户推送
channelchannel给某频道的用户推送,可用;分隔
iosios_deviceToken推送给某iOS用户,ios_deviceToken为空时推送给所有iOS用户
androidandroid_installationId推送给某android用户,android_installationId为空时推送给所有android用户
locationlatitude;longitude;distance推送给某点附近一定公里的用户
timetime推送给不活跃用户,time指定不活跃的时间,格式为yyyyMMdd或者yyyyMMddhhmmss