标签: push-notification

Android是否支持近实时推送通知?

我最近了解到iPhone应用程序能够接收几乎即时通知应用程序的应用程序 通知.

这是以推送通知的形式提供的,这是一种定制的协议,它始终保持与iPhone的数据连接,并将二进制数据包发送到应用程序,从服务器应用程序发送到手机应用程序0.5到5秒之间,可以非常快速地弹出警报响应时间.这是作为数据而不是SMS发送的,这些数据包作为数据计划的一部分而非作为传入消息收费.

我想知道,使用Android,是否有类似的工具,或者是否可以使用Android API实现与此类似的东西.为了澄清,我将类似定义为:

  • 不是SMS消息,而是一些数据驱动的解决方案
  • 尽可能实时
  • 可扩展,即作为移动应用程序的服务器部分,我可以在几秒钟内通知数千个应用程序实例

我很欣赏这个应用程序可能是基于拉取的,HTTP请求/响应风格,但理想情况下我不想仅仅为了检查通知而进行大量轮询; 除此之外,它就像滴水排放数据计划.

android push-notification

335
推荐指数
13
解决办法
18万
查看次数

生成.pem文件用于设置Apple PUSH通知

我尝试生成__CODE__文件,每次__CODE__从客户端帐户生成,然后__CODE__使用终端生成文件,但它没用.我遵循了许多相同的链接.如果任何人知道如何生成__CODE__或有任何链接给出一步一步的__CODE__生成过程,请帮助我.

pem push-notification apple-push-notifications ios

281
推荐指数
4
解决办法
26万
查看次数

如果用户强行退出,iOS会将我的应用程序启动到后台吗?

我通过content-available在推送通知上使用标志来触发后台获取.我有fetchremote-notification UIBackgroundModes启用.

这是我在AppDelegate.m中使用的实现:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"Remote Notification Recieved");
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.alertBody =  @"Looks like i got a notification - fetch thingy";
    [application presentLocalNotificationNow:notification];
    completionHandler(UIBackgroundFetchResultNewData);

}
Run Code Online (Sandbox Code Playgroud)

当应用程序在后台运行时,它可以正常工作.(收到通知,应用程序触发"看起来像我收到通知"本地通知,因为上面的代码应该这样做).

但是,当应用程序未运行并且收到带有content-available标志的推送通知时,应用程序不会启动,并且didRecieveRemoteNotification永远不会调用委托方法.

WWDC视频最新的多任务处理(来自WWDC 2013的#204)显示了这一点:在此输入图像描述

它表示当收到带有content-available标志的推送通知时,应用程序将"启动到后台" .

为什么我的应用程序没有启动到后台?

所以真正的问题是:

用户强行退出应用后,iOS会执行后台任务吗?

push-notification apple-push-notifications ios ios7

217
推荐指数
4
解决办法
12万
查看次数

推送通知技术如何在Android上运行?

Google如何实施推送通知功能?它是通过在后台运行的服务还是以不同的方式完成的轮询来工作的?

android polling push-notification

200
推荐指数
3
解决办法
7万
查看次数

在前台iOS中的App时获取推送通知

我在我的应用程序中使用推送通知服务.当应用程序在后台时,我能够在通知屏幕上看到通知(当我们从iOS设备的顶部向下滑动时显示的屏幕).但是如果应用程序在前台是委托方法

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
Run Code Online (Sandbox Code Playgroud)

正在调用,但通知屏幕中不显示通知.

我想在通知屏幕上显示通知,无论应用程序是在后台还是前台.我厌倦了寻找解决方案.任何帮助是极大的赞赏.

iphone objective-c push-notification ios

171
推荐指数
11
解决办法
19万
查看次数

重置应用的推送通知设置

我正在使用推送通知开发应用程序.要检查所有可能的用户交互方式,我想在用户拒绝在第一次启动时为我的应用启用推送通知时测试我的应用.

registerForRemoteNotificationTypes但是,对话框(由其启动)仅在每个应用程序中出现一次.如何重置iPhone OS的应用程序内存.删除应用程序并重新安装没有帮助.

iphone push-notification

170
推荐指数
8
解决办法
10万
查看次数

检测是否通过推送通知启动/打开了应用程序

是否可以知道应用程序是否通过推送通知启动/打开?

我猜这个发布活动可以在这里找到:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    if (launchOptions != nil) {
         // Launched from push notification
         NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当应用程序处于后台时,如何检测到它是从推送通知中打开的?

push-notification apple-push-notifications uiapplicationdelegate ios ios6

162
推荐指数
10
解决办法
11万
查看次数

无声推送未在iOS 11上传送到应用程序

我注意到在iOS 11 beta 2上,application:didReceiveRemoteNotification:fetchCompletionHandler无论应用程序的状态如何(背景/前景),都不会传递静默通知.

我实现了该UIApplicationDelegete方法,application:didReceiveRemoteNotification:fetchCompletionHandler并发送以下静默推送

{  
  "aps": {  
    "content-available": 1  
  },  
  "mydata": {  
    "foo": "bar"  
  }  
} 
Run Code Online (Sandbox Code Playgroud)

但是在iOS 11上没有调用委托方法.

它在其他版本的iOS上工作正常,文档部分配置静默通知没有提到应该做的任何其他事情.

这是iOS 11中的错误还是我错过了iOS 11中的新功能?

请注意,我不是在讨论或使用UserNotification发送静默推送所不需要的框架.

这是一个说明问题的示例项目(您必须设置自己的包ID)

当您在示例项目中进行午餐并将上述有效负载发送到应用程序时,您可以使用macOS控制台查看推送是否已正确传递到设备,而不是应用程序.

更新10.08

看来行为是随机的.有时在重新启动设备后,有效负载会正确传送,但一段时间后它会停止工作.

正如您在下面的屏幕截图中看到的那样,标记为1的推送仅对设备进行了延迟,并且推送2(设备重启后)也会传送到应用程序.

在此输入图像描述

更新14.08 - iOS 11 Beta 6

还是一样的行为.应该起作用的另一件事但不是以下.当应用程序的方案设置为"等待可执行文件启动"时,静音推送应该唤醒应用程序并在后台启动它.

在此输入图像描述

更新21.08 - iOS 11 Beta 7

在错误报告中仍然是Apple的相同行为而不是更新.

更新29.08 - iOS 11 Beta 8

仍然是同样的问题.我现在使用的重现步骤如下:

  • 在Xcode项目方案中,选择"等待可执行文件启动"
  • 在中添加断点 didReceiveRemoteNotification: fetchCompletionHandler
  • 在设备上启动应用
  • 发送上面的静音推送

预期:应用程序从暂停状态进入后台并被didReceiveRemoteNotification: fetchCompletionHandler调用

实际:没有任何反应

更新06.09 - iOS 11 Beta …

push-notification ios ios11

158
推荐指数
7
解决办法
3万
查看次数

如何在Xcode 4.3中修复"为应用程序找到的无效'aps-environment'权利字符串"?

我一直在努力创建一个简单的iOS应用程序,可以接收推送通知.我这样做的唯一原因是为其他团队成员建立一个程序,并且无法在网络上的其他地方找到这些指令的最新工作版本.我们的商店对于iOS开发者来说相当新,我个人对iOS开发和Xcode完全缺乏经验.我偶然发现了Apple和其他地方的数十篇教程,文章和问题帖子,我觉得我可能差不多......

这是我必须去的地方(请注意我正在使用Xcode 4.3并尝试最初部署到iOS 5.1,并且我认为最近有些事情可能与早期版本的Xcode有所改变,但我再次对所有人都是新手这 - 并且发现它完全令人困惑和错综复杂):

1)我的iPhone上有配置文件,启用了Push功能

2)在我的测试Xcode项目中,我已选择配置文件作为签名标识(在Build Settings> Code Signing中)

在此输入图像描述

3)我已在"摘要和信息">"自定义iOS目标属性"下正确设置了我的包标识符*(我认为??)

4)我已经在我的委托的didFinishLaunchingWithOptions中调用了registerForRemoteNotificationTypes

5)我的委托中有didRegisterForRemoteNotificationsWithDeviceToken和didFailToRegisterForRemoteNotificationsWithError,设置为分别记录设备令牌或错误

6)我在Summary下检查了Enable Entitlements.

7)在下面,选择的权利文件是Tinker6(我的测试项目的名称),当我选中启用权利时自动生成

8)在Tinker6.entitlements文件中,我得到了以下内容(我收集的内容基于网络上的几个不同帖子是正确的,但是我找不到Apple自己确定的任何内容):

在此输入图像描述

更新

9)此外,我已经尝试了没有权利文件的整个事情,并获得了基本相同的结果.

10)我的mobileprovision文件内容包括正确的权利(我已经对数字和域进行了加扰,但结构相同):

<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
    <string>12355456A7.*</string>
</array>
Run Code Online (Sandbox Code Playgroud)

/结束更新

当我尝试在我的设备上运行它时,我在Xcode输出中收到以下错误:

2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error: 
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' 
entitlement string found for application" UserInfo=0x24a3b0 
{NSLocalizedDescription=no valid 'aps-environment' entitlement string 
found for application}
Run Code Online (Sandbox Code Playgroud)

我已经尝试将get-task-allow设置为NO,aps-environment to production,所有四种可能的组合,同样的事情.

我怎么能通过这个?这方面的权威文件在哪里?

- 进一步的背景如下 -

*就bundle ID而言,我仍然不清楚如何在Provisioning配置文件中设置应用程序ID和配置文件ID.在App Ids下的Provisioning门户中,我有这个(再次,扰乱了数字和域):

在此输入图像描述

并且两个地方捆绑id设置我有这个:

在此输入图像描述 在此输入图像描述

我完全不确定这些是否正确,或者是否应将其中一个或两个设置为12355456A7.com.whatever.tinker,尽管我在此过程中尝试过这些但没有成功...

注意我意识到有许多帖子具有相似的标题,但是它们似乎都是根据文件名和反过来给出的,并且事实上没有一个解决方案似乎有用.我希望我给出的更高水平的细节将保证质量响应.我可能会尽快分配奖金,如果你给出一个高质量的答案导致解决方案,我将奖励你的奖金,并通过推特和我的博客推广你的答案.特别是如果你发布一个非常好的crosspost帖子"这里有你需要的确切的 500步骤,以便在你的博客或其他任何东西上获得一个简单的推送通知应用程序,包括配置和其他任何"文章.

notifications push-notification apple-push-notifications ios

153
推荐指数
11
解决办法
17万
查看次数

推送通知警报文本的最大长度是多少?

iOS推送通知的警报文本的最大长度是多少?

文档指出通知有效负载总共不得超过256个字节,但肯定必须对警报文本有特定的字符限制.

iphone push-notification ios

139
推荐指数
7
解决办法
17万
查看次数