diff --git a/src/ntqqapi/constructor.ts b/src/ntqqapi/constructor.ts
index 679f173..0640dfd 100644
--- a/src/ntqqapi/constructor.ts
+++ b/src/ntqqapi/constructor.ts
@@ -225,7 +225,11 @@ export class SendMsgElementConstructor {
         return {
             elementType: ElementType.ARK,
             elementId: "",
-            arkElement: data
+            arkElement: {
+                bytesData: data,
+                linkInfo: null,
+                subElementType: null
+            }
         }
     }
 }
\ No newline at end of file
diff --git a/src/ntqqapi/hook.ts b/src/ntqqapi/hook.ts
index 8d403b5..d9139db 100644
--- a/src/ntqqapi/hook.ts
+++ b/src/ntqqapi/hook.ts
@@ -125,6 +125,27 @@ export function hookNTQQApiCall(window: BrowserWindow) {
     } else {
         webContents._events["-ipc-message"] = proxyIpcMsg;
     }
+
+    const ipc_invoke_proxy = webContents._events["-ipc-invoke"]?.[0] || webContents._events["-ipc-invoke"];
+    const proxyIpcInvoke = new Proxy(ipc_invoke_proxy, {
+        apply(target, thisArg, args) {
+            // console.log(args);
+            HOOK_LOG && log("call NTQQ invoke api", thisArg, args)
+            args[0]["_replyChannel"]["sendReply"] = new Proxy(args[0]["_replyChannel"]["sendReply"], {
+                apply(sendtarget, sendthisArg, sendargs) {
+                    sendtarget.apply(sendthisArg, sendargs);
+                }
+            });
+            let ret = target.apply(thisArg, args);
+            HOOK_LOG && log("call NTQQ invoke api return", ret)
+            return ret;
+        }
+    });
+    if (webContents._events["-ipc-invoke"]?.[0]) {
+        webContents._events["-ipc-invoke"][0] = proxyIpcInvoke;
+    } else {
+        webContents._events["-ipc-invoke"] = proxyIpcInvoke;
+    }
 }
 
 export function registerReceiveHook<PayloadType>(method: ReceiveCmd | ReceiveCmd[], hookFunc: (payload: PayloadType) => void): string {
diff --git a/src/onebot11/action/SendMsg.ts b/src/onebot11/action/SendMsg.ts
index b10976a..babe312 100644
--- a/src/onebot11/action/SendMsg.ts
+++ b/src/onebot11/action/SendMsg.ts
@@ -438,8 +438,10 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
                             }
                         }
                     }
-                }
-                    break;
+                } break;
+                case OB11MessageDataType.json: {
+                    sendElements.push(SendMsgElementConstructor.ark(sendMsg.data.data))
+                }break
             }
 
         }
diff --git a/src/onebot11/types.ts b/src/onebot11/types.ts
index 3ebce72..ca7c09c 100644
--- a/src/onebot11/types.ts
+++ b/src/onebot11/types.ts
@@ -187,12 +187,17 @@ export interface OB11MessageCustomMusic{
     }
 }
 
+export interface OB11MessageJson {
+    type: OB11MessageDataType.json
+    data: {config: {token: string}} & any
+}
+
 export type OB11MessageData =
     OB11MessageText |
     OB11MessageFace |
     OB11MessageAt | OB11MessageReply |
     OB11MessageImage | OB11MessageRecord | OB11MessageFile | OB11MessageVideo |
-    OB11MessageNode | OB11MessageCustomMusic
+    OB11MessageNode | OB11MessageCustomMusic | OB11MessageJson
 
 export interface OB11PostSendMsg {
     message_type?: "private" | "group"