PhoneGap-Android:Urban Airship 从我的服务器推送通知

Posted

技术标签:

【中文标题】PhoneGap-Android:Urban Airship 从我的服务器推送通知【英文标题】:PhoneGap-Android: Push Notification by Urban Airship from my server 【发布时间】:2014-01-07 15:23:13 【问题描述】:

我正在使用android PhoneGap 应用程序,我需要使用push notification by Urban Airship。我在我的应用程序中集成了(Development+Debug)Urban Airship 推送通知,并从 Urban Airship 网站发送测试推送,并成功接收到所有设备的推送。

但我需要从我的windows(IIS installed) server(push text and sent time will vary upon server time) 发送推送通知。我想根据我的schedule task 发送推送文本。调度任务由php代码完成。

那么,有什么线索或想法可以从我的服务器以适当的时间表发送推送通知吗?

提前致谢。

【问题讨论】:

您需要将您的应用程序从开发阶段更改为生产阶段,以便可以从实时服务器发送推送通知。 见docs.urbanairship.com/build/phonegap.html 【参考方案1】:

如果您可以在您的服务器上运行 PHP,那么按照这个文档应该可以让您到达那里 - Urban Airship Simple PHP 我已经使用过它并且效果很好!

您需要将其中的大部分包含在一个函数中,然后由您的适当时间表调用。

编辑:添加代码

<?php
 define('APPKEY','XXXXXXXXXXXXXXX'); // Your App Key
 define('PUSHSECRET', 'XXXXXXXXXXXXXXX'); // Your Master Secret
 define('PUSHURL', 'https://go.urbanairship.com/api/push/');

 $contents = array();
 $contents['badge'] = "+1";
 $contents['alert'] = "PHP script test";
 $contents['sound'] = "cat.caf";
 $notification = array();
 $notification['ios'] = $contents;
 $platform = array();
 array_push($platform, "ios");

 $push = array("audience"=>"all", "notification"=>$notification, "device_types"=>$platform);

 $json = json_encode($push);
 echo "Payload: " . $json . "\n"; //show the payload

 $session = curl_init(PUSHURL);
 curl_setopt($session, CURLOPT_USERPWD, APPKEY . ':' . PUSHSECRET);
 curl_setopt($session, CURLOPT_POST, True);
 curl_setopt($session, CURLOPT_POSTFIELDS, $json);
 curl_setopt($session, CURLOPT_HEADER, False);
 curl_setopt($session, CURLOPT_RETURNTRANSFER, True);
 curl_setopt($session, CURLOPT_HTTPHEADER, array('Content-Type:application/json', 'Accept: application/vnd.urbanairship+json; version=3;'));
 $content = curl_exec($session);
 echo "Response: " . $content . "\n";

 // Check if any error occured
 $response = curl_getinfo($session);
 if($response['http_code'] != 202) 
     echo "Got negative response from server: " . $response['http_code'] . "\n";
  else 

     echo "Wow, it worked!\n";
 

 curl_close($session);
?>

【讨论】:

以上是关于PhoneGap-Android:Urban Airship 从我的服务器推送通知的主要内容,如果未能解决你的问题,请参考以下文章

Urban Airship 收不到富推

UVa221 Urban Elevations

Urban Airship 在呼叫起飞时坠毁

如何使用 Urban AirShip (Swift) 获取 appDelegate

程序无法从 Urban Code Deploy 创建执行

Urban Airship 和 AirshipConfig.plist