Push API
PUBLISHED
概述
本文演示Push API的使用。 Push API提供从Tizen push 服务器获取push通知的功能。 push服务管理设备和Tizen push服务器之间的永久连接,用于处理注册和撤销登记的需求,在设备上将push通知传递给应用程序。
先决条件
在config.xml文件中添加下面几行。
<tizen:privilege name="http://tizen.org/privilege/push"/> <access origin="https://{region}.push.samsungosp.com:8088" subdomains="true"/>
这里{region}依赖于regID的前两个数字,regID在本文的‘发送Push通知请求‘部分解释。
获取Push通知的几个步骤
管理员权限
要为Tizen push信息服务获得管理员权限,用户必须发送一封邮件到管理员(push.tizen@samsung.com),填写具体的请求信息。 Tizen Push Service团队会接受请求,并会发送一封同意邮件。
注册应用程序
在收到请求的确认邮件后,在设备上用registerService方法云注册程序(appControl, successCallback, errorCallback)。 如果请求过程成功,会返回请求标记符。
// Defines the data to be used when this process is launched by notification service. var service = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/push_test"); tizen.push.registerService(service, registerSuccessCallback, errorCallback); function registerSuccessCallback(id) { console.log("Registration succeeded with id: " + id); } function errorCallback(response) { console.log( 'The following error occurred: ' + response.name); }
连接Push服务
用connectService(notificationCallback, errorCallback)方法连接到push服务以得到push通知。
tizen.push.connectService(notificationCallback, errorCallback); function notificationCallback(noti) { console.log("Notification received with alert message: " + noti.alertMessage); }
发送Push通知请求
使用Push Server API来发送通知请求
jQuery.ajax({ type: 'POST', contentType: 'json', url: 'https://{region}.push.samsungosp.com:8088/spp/pns/api/push', headers: {"appID":applicationId, "appSecret":secretId}, data: JSON.stringify({ "regID":registrationId, "requestID":"000001", "message":"badgeOption=SET&badgeNumber=10&action=ALERT&alertMessage=Hi, You got push message", "appData":"Hello world" }), dataType: 'json', })
当一个Tizen设备收到信息时,它直接被传给一个活动的应用程序,appData为"Hello World!",并且该应用程序处理剩下的程序。 如果应用程序不是活动的(没有运行或正在后台),应用程序的badge数字更新到10,并且显示出一个滴答信息“Hi"。
URL
要用POST方法发送一个push通知,请求URL是https://{region}.push.samsungosp.com:8088/spp/pns/api/push。 请求URL只使用HTTPS协议。 {region}表示Tizen Server放在哪里,由regID的前两个数字决定。 要知道Tizen server的位置,请参考上面提到的Push Server API。
请求数据区
关于定义应用程序是否注册,以及允许使用Tizen push服务的权限需要头文件(appID和appSecret)。 这里appId是应用程序包的ID,它使用push服务,appSecrete由Tizen Push Service Team(可以在push服务同意的邮件中找到)触发。
获得Push通知
如果push通知请求成功,则用户会从connectService方法的回调函数中获得push信息。
解除注册应用程序
用户可以用unregisterService(unregisterSuccessCallback, errorCallback)方法从Tizen push server解除一个应用程序的注册。
tizen.push.unregisterService(unregisterSuccessCallback, errorCallback); function unregisterSuccessCallback() { console.log("Unregistration succeeded."); } function errorCallback(response) { console.log( 'The following error occurred: ' + response.name); }
断开Push Server
用户可以从Push service断开,并用disconnectService()方法停止接收push通知。
tizen.push.disconnectService();