gpt4 book ai didi

swift - 我可以将字符串转换为 SINCall 吗?

转载 作者:行者123 更新时间:2023-11-30 11:23:17 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com