作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 sinch 并使用 firebase 作为我的数据库,并使用其云功能发送通知。发送通知工作正常,但是 shouldSendPushNotifications
函数但它永远不会被调用,所以我无法将 sinch 有效负载添加到通知数据中,并且我在互联网上找不到任何可靠的工作示例,所以我放弃了这一点,决定将 SINcall
对象发送到数据库,被调用者将检索它并回答。
但问题是 firebase 仅存储字符串,因此当我检索存储的 SINCall 时,出现错误无法将类型“__NSCFString”(0x102096998)的值转换为“__ObjC.SINCall”(0x10209ab08)
.那么有没有办法将其转换为 SINCall,以便我可以用它接听、拒绝等?
编辑:这是我在 AppDelegate.swift
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
print("USERINFO: \(userInfo["sin"]!)") <-- prints call: <SINCallImpl: 0x1c00f2600>
let incomingCall = userInfo["sin"]!
SINClientManager.shared.call = incomingCall as! SINCall <-- Error occurs
...
}
最佳答案
您需要将数据发送到sinch客户端来设置调用,您无法将字符串转换为调用。
NSString* payload = [remotePush objectForKey:@"SIN"];
// Get previously initiated Sinch client
id<SINClient> client = [self sinchClient];
id<SINNotificationResult> result = [client relayRemotePushNotificationPayload:payload];
if (result.isCall && result.callResult.isTimedOut) {
// Present alert notifying about missed call
} else if (!result.isValid) {
// Handle error
}
关于swift - 我可以将字符串转换为 SINCall 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51051881/
我正在使用 sinch 并使用 firebase 作为我的数据库,并使用其云功能发送通知。发送通知工作正常,但是 shouldSendPushNotifications 函数但它永远不会被调用,所以我
我对如何正确创建 SINCall 对象有些困惑。我知道 SINCall 是一种类型协议(protocol),我很快就尝试这样创建它: var _call: SINCall? 当我尝试调用时,我的应用程
我是一名优秀的程序员,十分优秀!