Push API

 

概述

本文演示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();

参考

Push API

文件附件: