OneSignal

来自于:开发者立即使用

概述

OneSignal is a reliable service to send push notifications, in-app messages, and emails to your users on mobile and web, including content management platforms like Wordpress and Shopify. In our documentation you can discover resources and training to implement OneSignal’s SDKs, learn how to leverage OneSignal’s powerful API, and find best practices for sending messages to increase your user engagement.

使用此模块之前需先配置 config.xml 文件,方法如下

  • 配置示例:
<feature name="OneSignal">

    <param  name="appId" value="25662805"/>
    <param  name="inAppLaunchURL" value="true"/>
</feature>
  • 字段描述:

appIdOneSignal应用ID。

inAppLaunchURL:在应用内Safari窗口或Safari应用中打开URL。有关代码示例,请参见iOS SDK设置。true(默认)-使用应用内WebView窗口打开所有URL。false- 使用URL或其他应用程序启动Safari(如果通过了深层链接或自定义URL方案)。仅支持iOS

android config.xml配置

 <meta-data
            name="onesignal_app_id"
            value="[onesignal_app_id]" />
 <meta-data
            name="onesignal_google_project_number"
            value="str:[onesignal_google_project_number]" />
  • [onesignal_app_id] : 替换为你onesignal平台appId
  • [onesignal_google_project_number]:项目编号,例:REMOTE

注意:接口翻译为Google翻译,愿文档说明请查看OneSignal平台

模块接口

setExternalUserId

如果您的系统为用户分配了唯一的标识符,则可能还必须记住他们的OneSignal Player ID。 为了使事情变得容易,OneSignal现在允许您为用户设置external_user_id。 只需调用此方法,传入自定义用户ID(作为字符串),从现在开始发送推送通知时,就可以使用include_external_user_ids代替include_player_ids。

setExternalUserId({params}, callback(ret))

parameter

userId

  • 类型:字符串类型
  • 描述:用户ID

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    result:{},                //json对象;返回结果
}

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.setExternalUserId({
userId:'',
}, function(ret) {
   alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeExternalUserId

如果您的用户注销了您的应用程序,并且您希望将其自定义用户ID与他们的OneSignal用户ID从系统中取消关联,则需要调用此方法

removeExternalUserId()

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.removeExternalUserId();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getTags

查看当前设备记录中的标签

getTags(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    result:{},                //json对象;返回结果
}

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.getTags(function(ret) {
   alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sendTag

将单个数据标签添加到当前设备记录

sendTag({params})

params

key:

  • 类型:字符串
  • 描述:key

value:

  • 类型:字符串
  • 描述:value

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.sendTag({
    key: '',
    value: ''
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sendTags

将多个数据标签添加到当前设备记录

sendTags({params})

params

jsonString:

  • 类型:字符串
  • 描述:多个数据标签的json对象
  • 示例:{'name':'123','age':17}

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.sendTags({
    jsonString: {}
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deleteTag

从当前设备记录中删除标签

deleteTag({params})

params

key:

  • 类型:字符串
  • 描述:key

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.deleteTag({
    key: ''
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deleteTags

从当前设备记录中删除标签

deleteTags({params})

params

keys:

  • 类型:字符串数组
  • 描述:标签数组

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.deleteTags({
    keys: []
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setLocationShared

禁用或启用SDK位置收集

setLocationShared({params})

params

isShared:

  • 类型:布尔
  • 描述:(可选项)是否禁用
  • 默认:true

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.setLocationShared({
    isShared: true
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

postNotification

发送或安排对OneSignal Player ID的通知

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

params

notification:

  • 类型:json对象
  • 描述:通知内容

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;是否成功;true||false

    result:,      //JSON对象类型(仅android支持)
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: 0, //仅iOS支持
    msg: '',     //仅iOS支持
      result:,      //JSON对象类型(仅android支持)
}

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.postNotification({
    notification: {}
},function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addTrigger

添加触发器,如果​​满足其触发条件,则可能显示应用内消息

addTrigger({params})

params

key:

  • 类型:字符串
  • 描述:key

value:

  • 类型:字符串
  • 描述:value

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.addTrigger({
    key: '',
    value: ''
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeTriggerForKey

根据一组键删除触发器列表,如果满足其触发条件,则可能显示应用内消息

removeTriggerForKey({params})

params

key:

  • 类型:字符串
  • 描述:key

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.removeTriggerForKey({
    key: ''
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pauseInAppMessages

是否允许您暂时暂停所有“应用内消息”

pauseInAppMessages({params})

params

pause:

  • 类型:布尔类型
  • 描述:(可选项)是否允许
  • 默认:true

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.pauseInAppMessages({
    pause: true
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setEmail

设置用户的电子邮件。 为电子邮件地址创建一个新的用户记录。 如果要使用emai更新推送用户记录,请使用sendTag

setEmail({params})

params

email:

  • 类型:字符串
  • 描述:email

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.setEmail({
    email: ''
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

logoutEmail

注销用户以断开与设备的电子邮件关联

logoutEmail()

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.logoutEmail();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addMessageListener

消息监听

addMessageListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
   eventType:'',         //字符串类型;事件类型
                         //receive(收到通知))
                         //open(当用户打开或点击通知)
                         //click(单击按钮)(仅iOS支持)
   receive:{
     payload:{           
        notificationID:'',   //字符类型;UUID
        shown:true,   //布尔类型;当aps有效负载中的可用密钥内容设置为1时为true。 content-available用于在收到有效负载时唤醒您的应用程序。(仅iOS支持)
        badge:0,   //数字类型;分配给应用程序图标的徽章(仅iOS支持)
        smallIcon:'',    //字符串类型;小图标(仅android支持)
        largeIcon:'',      //字符串类型;大图标(仅android支持)
        bigPicture:'',    //字符串类型;大图(仅android支持)
        sound:'',   //字符类型;声音参数传递给通知
        title:'',  //字符串类型;通知标题文字
        body:'',  //字符串类型;通知的正文
        subtitle:'',  //iOS 10+ -通知的字幕文本(仅iOS支持)
        launchURL:'',  //字符串类型;通过以下网址在应用程序内启动的网址 UIWebView
        additionalData:{}, //josn对象;您将其他数据添加到通知中
        attachments:{}, //josn对象;iOS 10+ -附件作为丰富通知的一部分发送(仅iOS支持)
        actionButtons:[], //数组类型;通知上设置的操作按钮
        rawPayload:{}, //josn对象;保留接收到的原始APS有效负载
        groupKey:'',      //字符串类型;组key(仅android支持)
        groupMessage:'',   //字符串类型;组信息(仅android支持)
        fromProjectNumber:'', //字符串类型
     },
     shown:true,        //布尔类型;当用户能够看到通知时为true。当应用程序处于焦点状态且应用程序内警报已禁用或远程通知处于静默状态时为False
     silentNotification:true,  //布尔类型;当收到的通知为静默时为真。静音意味着APS词典中没有警报,声音或徽章有效载荷
   },
   open:{
     notification:{}, //json对象,通知信息,和上边的receive字段相同
     action{
       actionID:'', //字符串类型;轻击与按钮关联的ID。当actionType为NotificationTapped或InAppAlertClosed时为NULL
       actionType:'', //字符串类型;(仅android支持)
     }
   },
   action:{     
     clickName:'',//字符串类型;IAM操作所附的操作名称
     clickUrl:'',//字符串类型;发生操作时应打开的URL(如果有)
     firstClick:true,//布尔类型;点击操作是否是首次点击IAM
     closesMessage:true,//布尔串类型;单击操作是否是在IAM上的第一次单击?单击操作是否关闭了消息
   }                       
}

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.addMessageListener(function(ret) {
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEmailListener

邮件监听

addEmailListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    to:{
      emailUserId:'', //字符串类型;Email user ID
      emailAddress:'', //字符串类型;Email 地址
      subscribed: true//布尔类型;是否订阅
    },
    from:{
      emailUserId:'', //字符串类型;Email user ID
      emailAddress:'', //字符串类型;Email 地址
      subscribed: true//布尔类型;是否订阅
    }                
}

示例代码

var OneSignal = api.require('OneSignal');
OneSignal.addEmailListener(function(ret) {
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本