我正在使用离子框架(Web技术)开发android/ios应用程序,我想在新的firebase功能FCM的帮助下添加推送通知.
现在我正在看以下文档:
https://firebase.google.com/docs/cloud-messaging/chrome/client#project-setup
说的是:
- Chrome中的网站可以通过服务工作者和网络实现推送消息传递
- 应用程序符合Webpush标准.Chrome应用和扩展程序可以直接通过chrome.gcm
API 访问FCM服务.
这是否意味着我可以在我的离子应用程序中使用它同时用于android/ios,因为app是使用cordova构建的?
如果有任何实现的例子,我可以看到和学习,这将是非常有帮助的.
谢谢
push-notification cordova firebase ionic-framework firebase-cloud-messaging
我们希望能够将简单的短信发送到我们所有的iphone用户.为此,我们显然需要创建一个存储设备令牌的服务器端代码,并在必要时推送消息.这样做有什么好的例子吗?(谈论服务器代码)
谢谢
这是概述.
我需要将推送通知添加到iPhone应用程序.服务器端是c#中的ASP.NET.
我想要的是一些指导工作.然后,我将发布iPhone项目和ASP.NET Web应用程序的通用代码以及逐步说明,以便其他人可以学习.
这是我的理解:
所以要开发添加,这里是件:
iPhone注册码
将iPhone注册码发送到服务器并保存到DB的代码(这很简单,我已经有了这些部分).
服务器端APNS联系人代码在c#中.这还包括如何使用Apple Developer网站上生成的证书.
此外,有效负载是否可以作为多项选择问题,可以通过发送回服务器的结果来回答?
在此先感谢您的帮助.我将把它转成其他人的教程.
我在读Apple的文档
在我看来,有相互矛盾的陈述.有人可以清理这些混乱点吗?现在让我们严格讲一下远程通知(与本地对比).
文档说如果按下通知上的操作按钮,它会调用application:didFinishLaunchingWithOptions并传入通知有效负载.后来它说如果应用程序在前台运行,它会通过应用程序传递通知:didReceiveRemoteNotification:.这意味着当应用程序背景化或未运行时,将调用application:didFinishLaunchingWithOptions.否则,应用:didReceiveRemoteNotification:被调用.
后来有一个iOS Note说如下:
"iOS注意:在iOS中,您可以确定是否由于用户点击操作按钮而启动了应用程序,或者是否通过检查应用程序状态将通知传递给已在运行的应用程序.在委托的应用程序实现中:didReceiveRemoteNotification:或application:didReceiveLocalNotification:方法,获取applicationState属性的值并对其进行评估.如果值为UIApplicationStateInactive,则用户点击操作按钮;如果值为UIApplicationStateActive,则应用程序在收到通知时位于最前面. "
这意味着应用程序:didReceiveRemoteNotification:在应用程序已经预先考虑时以及用户按下操作按钮(或在iOS 5中滑动操作滑块)以前景/启动应用程序时调用.
我的混淆源可能是文档暗示通知有效负载与应用程序一起发送的第一部分:didFinishLaunchingWithOptions:方法或误解了"正在运行"的应用程序是什么(是一个被认为是"正在运行"的后台应用程序?) .应用程序的文档:didReceiveRemoteNotification:声明它被称为"运行"应用程序.
总而言之,我能否澄清一下:
1)应用程序:didReceiveRemoteNotification:当应用程序被预设时或用户选择对通知"行动"时总是被调用吗?如果没有,我们如何理解关于确定应用程序状态是活动还是非活动的iOS注意事项?
2)背景应用程序是否"正在运行",至少在声称应用程序的文档意义上:didReceiveRemoteNotification是否用于运行应用程序?
3)完成后,是一个后台应用UIApplicationStateInactive还是Active?
我设置了Parse push Android SDK 1.7.0并且可以毫无问题地接收推送.但是,当打开推送通知时,我的应用程序崩溃时出现以下异常:
android.content.ActivityNotFoundException:找不到处理Intent的Activity {act = android.intent.action.VIEW dat = flg = 0x1000c000(has extras)}
我也尝试了子类化ParsePushBroadcastReceiver,getActivity()总是返回主活动类,结果相同.下面是完整的堆栈跟踪:
E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.ers.test, PID: 13513
java.lang.RuntimeException: Unable to start receiver com.ers.test.MyPushBroadcastReceiver: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat= flg=0x1000c000 (has extras) }
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2452)
at android.app.ActivityThread.access$1700(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.ActivityNotFoundException: No Activity found …Run Code Online (Sandbox Code Playgroud) 在官方文档中,您可以找到以下信息:
每个推送通知包括有效载荷.有效负载包含有关系统应如何提醒用户以及您提供的任何自定义数据的信息.通知有效负载允许的最大大小为256字节 ; Apple推送通知服务拒绝任何超出此限制的通知.
但是在WWDC 14中我们可以看到这个截图:

我想知道苹果公司是否有关于推送通知大小限制的正式声明.我测试了它,并且更大的256字节工作,但文档说它不应该.有人可以确认或否认远程通知的大小吗?
在我的设置标签栏中:
我认为更好的解决方案是发送静默推送通知,我可以使用它来进行API调用,以便在需要时更新设置UI.
但如果用户已禁用推送通知,我仍会收到静音推送吗?处理此类情况的推荐方法是什么?
notifications objective-c push-notification ios silent-notification
当我试图打开APN连接时出现全局泄漏错误时,我试图对Apple推送通知库进行单元测试.
这是我的配置错误还是node-apn或mocha中的错误?
我不确定我理解checkGlobals正在做什么......它只是检查是否正在设置任何全局变量?
0) Feed "before all" hook:
Error: global leak detected: hasCert
at Runner.checkGlobals (/usr/lib/node_modules/mocha/lib/runner.js:96:21)
at Runner.<anonymous> (/usr/lib/node_modules/mocha/lib/runner.js:41:44)
at Runner.emit (events.js:64:17)
at /usr/lib/node_modules/mocha/lib/runner.js:159:12
at Hook.run (/usr/lib/node_modules/mocha/lib/runnable.js:114:5)
at next (/usr/lib/node_modules/mocha/lib/runner.js:157:10)
at Array.<anonymous> (/usr/lib/node_modules/mocha/lib/runner.js:165:5)
at EventEmitter._tickCallback (node.js:126:26)
Run Code Online (Sandbox Code Playgroud) unit-testing mocha.js push-notification apple-push-notifications node.js
我在谷歌云上使用推送通知,但由于某种原因我无法在模拟器上接收推送通知.
但是,当我在真实设备上测试时,相同的应用程序会收到通知.
有没有其他人遇到这个或找到解决方案?模拟设备具有网络访问权限,并且是与真实设备相同的Android版本,因此我无法想到它应该无法正常工作的任何原因.
我正在开发一个使用Google推送通知的应用程序.应用程序在小米手机中运行时会收到通知,否则当它被杀死时它不会收到通知.
如果我们想要在应用程序被杀死时收到通知,那么我们需要从xiaomi的安全应用程序手动允许自动重启应用程序.我想要任何技巧以编程方式执行此操作而无需询问用户.有没有办法做到这一点?

ios ×4
android ×3
iphone ×2
c# ×1
cordova ×1
firebase ×1
mocha.js ×1
node.js ×1
objective-c ×1
unit-testing ×1