hyapp-h5/common/jsbridge.js
2026-05-25 22:45:15 +08:00

44 lines
1.5 KiB
JavaScript

(function () {
function post(action, payload) {
var message = JSON.stringify({ action: action, payload: payload || {} });
if (window.flutter_inappwebview && window.flutter_inappwebview.callHandler) {
return window.flutter_inappwebview.callHandler("HyAppBridge", action, payload || {});
}
if (window.HyAppBridgeChannel && window.HyAppBridgeChannel.postMessage) {
window.HyAppBridgeChannel.postMessage(message);
return Promise.resolve();
}
if (window.FlutterBridge && window.FlutterBridge.postMessage) {
window.FlutterBridge.postMessage(message);
return Promise.resolve();
}
if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.HyAppBridge) {
window.webkit.messageHandlers.HyAppBridge.postMessage({ action: action, payload: payload || {} });
return Promise.resolve();
}
window.dispatchEvent(new CustomEvent("hyapp:bridge-message", { detail: { action: action, payload: payload || {} } }));
return Promise.resolve();
}
window.HyAppBridge = {
post: post,
back: function () {
return post("back");
},
openUser: function (userId) {
return post("openUser", { user_id: String(userId || "") });
},
openRoom: function (roomId) {
return post("openRoom", { room_id: String(roomId || "") });
},
openRankNote: function (boardType) {
return post("openRankNote", { board_type: String(boardType || "") });
},
ready: function (payload) {
return post("ready", payload || {});
}
};
})();