瀏覽代碼

Fixed channel deserialisation in iOS (#8386)

* Fixed channel

* Change file
Guillem Córdoba 1 年之前
父節點
當前提交
5848b4e8e9
共有 2 個文件被更改,包括 9 次插入4 次删除
  1. 5 0
      .changes/fix-ios-channel.md
  2. 4 4
      core/tauri/mobile/ios-api/Sources/Tauri/Channel.swift

+ 5 - 0
.changes/fix-ios-channel.md

@@ -0,0 +1,5 @@
+---
+"tauri": 'patch:enhance'
+---
+
+Fixed the deserialisation of a `Channel` in iOS. 

+ 4 - 4
core/tauri/mobile/ios-api/Sources/Tauri/Channel.swift

@@ -9,7 +9,7 @@ let channelDataKey = CodingUserInfoKey(rawValue: "sendChannelData")!
 
 public class Channel: Decodable {
   public let id: UInt64
-  let handler: (String) -> Void
+  let handler: (UInt64, String) -> Void
 
   public required init(from decoder: Decoder) throws {
     let container = try decoder.singleValueContainer()
@@ -30,7 +30,7 @@ public class Channel: Decodable {
       )
     }
 
-    guard let handler = decoder.userInfo[channelDataKey] as? (String) -> Void else {
+    guard let handler = decoder.userInfo[channelDataKey] as? (UInt64, String) -> Void else {
       throw DecodingError.dataCorruptedError(
         in: container,
         debugDescription: "missing userInfo for Channel handler. This is a Tauri issue"
@@ -54,12 +54,12 @@ public class Channel: Decodable {
   }
 
   public func send(_ data: JsonValue) {
-    handler(serialize(data))
+    handler(id, serialize(data))
   }
 
   public func send<T: Encodable>(_ data: T) throws {
     let json = try JSONEncoder().encode(data)
-    handler(String(decoding: json, as: UTF8.self))
+    handler(id, String(decoding: json, as: UTF8.self))
   }
 
 }