| 12345678910111213141516171819202122232425262728293031323334 |
- (function () {
- 'use strict';
- var invoke = window.__TAURI__.core.invoke;
- var listen = window.__TAURI__.event.listen;
- // ── Rust → JS ──────────────────────────────
- listen('pet://state', function (e) {
- if (window.cfcPetAPI) window.cfcPetAPI.notifyState(e.payload);
- });
- listen('pet://bubble', function (e) {
- if (window.cfcPetAPI) window.cfcPetAPI.showBubble(e.payload.text, e.payload.durationMs);
- });
- listen('pet://config', function (e) {
- if (window.cfcPetAPI) window.cfcPetAPI.loadConfig(e.payload);
- });
- // ── JS → Rust(替换 chrome.webview.hostObjects.sync.cfcHost)──
- window.cfcHost = {
- onInteract: function (action, dataJson) {
- try {
- invoke('on_interact', { action: action, data: dataJson });
- } catch (err) {
- console.log('[interaction]', action, dataJson);
- }
- },
- onDragStart: function () {
- try { invoke('drag_start'); } catch (e) { /* noop */ }
- },
- onDragEnd: function () {
- try { invoke('drag_end'); } catch (e) { /* noop */ }
- }
- };
- })();
|