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>
- 字段描述:
appId:OneSignal应用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及更高版本