Ari*_*tos 10 push-notification apple-push-notifications ionic-framework
我正试图用Ionic实现Push Notifications,我很困惑.到目前为止,我已经尝试了以下替代方案但没有成功:
离子推
似乎是最好的解决方案.它在浏览器中"模拟"通知,使其易于测试.有两个版本:
版本1.0:文档可在http://docs.ionic.io/v1.0/docs/push-overview上找到.该页面底部显示警告,说明要检查最新版本(2.0beta).如果我留在页面并尝试按照说明操作,一切似乎都运行正常,但如果我发送推送到https://push.ionic.io/api/v1/push没有消息到达.看看firebug我发现$ ionicPush正在查询2.0alpha API而不是查询1.0 API.
版本2.0:文档可在http://docs.ionic.io/docs/push-overview上找到.它与1.0非常相似,在浏览器,Android(开发和生产)和iOS开发环境中运行良好.但是,我无法获得有关IOS生产的消息(在将应用程序发布到商店之后).我努力寻找解决方案,但我找到了一些答案,说它是alpha,不应该使用.
因此,如果版本1.0不存在(它使用v2.0 API)并且v2.0是alpha并且不应该使用,我得出结论Ionic Push不能使用.
问题1:可以使用离子推送向iOS和Android发送通知吗?
问题2:使用2.0设置,我可以使用Apns PHP而不是Ionic Push发送消息吗?
Cordova Phonegap插件推送
这个插件是Ionic Push在我猜测的幕后使用的.但是,我无法弄清楚如何使用它.我发现的教程和文档已经过时,并引用了一个已弃用的版本(https://github.com/phonegap-build/PushPlugin.git).甚至ngCordova也引用了这个已弃用的版本(http://ngcordova.com/docs/plugins/pushNotifications/).ngCordova也建议使用Ionic Push.我找不到一个完整的例子,展示如何使用https://github.com/phonegap/phonegap-plugin-push with ionic.
问题3:如何设置Cordova Phonegap Plugin推离子?
我能够使用 Google Firebase 和https://github.com/arnesson/cordova-plugin-firebase/使用 Ionic 1 在 IOS 和 Android 上发送/接收推送通知。按照我所做的:
向我的应用程序添加了代码:
window.FirebasePlugin.grantPermission(); window.FirebasePlugin.getInstanceId( function(token) { thiss.saveToken(token); }, function(error) { console.log(error); } );
window.FirebasePlugin.onNotificationOpen( function(notification) {
//alert("是的!"); }, function(error) { //alert("Error"); } );
创建了 Google GCM/Google Firebase 帐户。
为了发送通知,我使用以下 php 脚本:
$data = Array
(
[to] => <token>
[priority] => high
[notification] => Array
(
[title] => My Title
[text] => Notification test
[sound] => default
[vibrate] => 1
[badge] => 0
)
)
$jsonData = json_encode($data);
$ch = curl_init("https://fcm.googleapis.com/fcm/send");
$header = array(
'Content-Type: application/json',
"Authorization: key=".$gcmApiKey
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8378 次 |
| 最近记录: |