是否有人可以使用IOS目标为的Swift 4.2澄清FCM所需的方法
我发现IOS的弃用问题和FCM方面的一些文档遗漏使得这种方式比它需要的更加混乱。
我们可以得到一个简单的矩阵,比如:AppState | closed | background | foreground|
userAction:none(简单消息到达IOS)取消通知点击通知选择通知操作直接打开应用程序-不参与通知
在上述场景中调用的方法是:blah…
此外,无论APNS是否发送了令牌,FCM似乎都会创建自己的令牌;因此,我需要不同的逻辑来检测用户是否授予了权限,然后我的服务器才能假设FCM令牌可以工作……我想我只是在确定我有APNS令牌之前不会向服务器发送FCM令牌???
此外,FCM文件明确指出,用户可见(即警报/通知样式)有效载荷通过APNS/Apple交付。
因此,我认为我可以假设FCM消息在苹果给我发送APNS令牌之前不会到达。
但我似乎无法从FCM委托方法中读取或检索Apple令牌。
这段代码总是返回一个空字符串apns,所以我不能告诉我的应用程序是否处于可靠的状态:
@Objc func消息传递(_消息传递:消息传递,didReceiveAuthstrationToken fcmToken: String){print("Firebase注册令牌:(fcmToken)")let apnsTokenData=messaging.apns令牌let apnsToken=apnsTokenData?。减少("", {$0字符串(格式:"X",1美元)})??"打印("apnsToken:(apnsToken)")
谢谢你的澄清!
以下是使用firebase对APN进行改进的功能
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_, _ in })
application.registerForRemoteNotifications()
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
// If you are receiving a notification message while your app is in the background,
// this callback will not be fired till the user taps on the notification launching the application.
}
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
}
问:我将启用Swizzling,即使一些教程(没有解释原因)告诉我关闭它: A. Swizzling方法需要将fcm令牌映射到apns令牌。如果您关闭了方法swizzling,您需要显式地将fcm令牌映射到apns令牌,如下所示
Messaging.messaging().apnsToken = deviceToken
我们可以得到一个简单的矩阵,如:AppState | closed | background | foreground |:对于任何应用程序状态,回调函数都已经存在于Appdelegate中。
我们有申报单 其中backlog被标识为传入连接的最大队列长度。如果连接指示在队列已满时到达,则会拒绝连接。 假设积压设置为10。 这是否意味着服务器套接字将接受不超过10个客户端? 然后: 只有当时,积压数才会下降。这是正确的吗? 有没有办法知道一个套接字当前正在处理多少个打开的连接(换句话说,它离放弃并开始拒绝新连接有多近)
问题内容: 因此,显然已在iOS 10中弃用了。有人能解释为什么或可以解释下一步做什么吗?我已经查看了Apple网站,发现了一些与OpenURL有关的东西,这就是他们所说的现在使用的东西: 有没有人有证据表明这是在Swift 3.0中使用OpenURL的新方法?另外,分别在和参数中使用什么值? 问题答案: 迅捷3+ : 用法: 资源
问题内容: 我有一张桌子Table1 当我使用以下查询查询该表时 我得到的输出为 但是以同样的方式,当我使用以下查询时,我没有任何输出。 有人请给我指导,为什么它会那样工作,以及如何使用rownum。 问题答案: 汤姆回答了许多与Oracle有关的问题 简而言之,在应用where子句之后和应用order by子句之前,rownum可用。 在RowNum = 2的情况下,where子句中的谓词将永远
我希望下面的代码中有,但它运行良好。 根据JavaDoc for: 这个类的所有“Collection view Methods”返回的迭代器都是快速失败的:如果在迭代器创建后的任何时候,以任何方式(除了通过迭代器自己的remove方法)修改了映射,则迭代器将抛出一个ConcurrentModificationException。 因此,由于我在获得之后修改了,所以我应该得到。为什么不扔?
所以这段时间我一直认为递归的问题是理解案例。事实证明,我的问题是理解递归案例的值。例如,向后打印数组的一部分。 原始尝试 一次有效的尝试 然而,这是一种高效的递归吗?还是有更好的办法?这是我从写出来的时候看出来的唯一方法。
类初始化规则规定:如果由于访问静态字段而触发类初始化,则只初始化声明了静态字段的类,即使静态字段被子类、子接口的类型或接口的实现类引用,也不会触发超类或子类的初始化。然后在下面的代码中,只应打印“初始化超类”。 } 当我运行这个时,输出: