mirror of https://github.com/msgbyte/tailchat
feat(desktop): add desktop inject
parent
eb83f784a1
commit
27eee90034
@ -0,0 +1,36 @@
|
|||||||
|
import { app } from 'electron';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成注入到Webview中的js代码
|
||||||
|
*/
|
||||||
|
export function generateInstallPluginScript() {
|
||||||
|
/**
|
||||||
|
* manifest copy from:
|
||||||
|
* com.msgbyte.env.rn/manifest.json
|
||||||
|
*/
|
||||||
|
const inner = `function main() {
|
||||||
|
window.tailchat
|
||||||
|
.installPlugin({
|
||||||
|
label: 'Electron Support',
|
||||||
|
'label.zh-CN': 'Electron 支持',
|
||||||
|
name: 'com.msgbyte.env.electron',
|
||||||
|
url: '/plugins/com.msgbyte.env.electron/index.js',
|
||||||
|
version: '0.0.0',
|
||||||
|
author: 'moonrailgun',
|
||||||
|
description: 'Add support for Electron environment in Tailchat',
|
||||||
|
'description.zh-CN': '在 Tailchat 添加对 Electron 环境的支持',
|
||||||
|
requireRestart: true,
|
||||||
|
});
|
||||||
|
}`;
|
||||||
|
|
||||||
|
const raw = `(${inner})()`;
|
||||||
|
return raw;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function generateInjectedScript(): string {
|
||||||
|
return [generateDeviceInfo()].join(';');
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateDeviceInfo() {
|
||||||
|
return `window.__electronDeviceInfo = { version: "${app.getVersion()}", name: "${app.getName()}" }`;
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
import { generateInstallPluginScript } from '.';
|
||||||
|
import log from 'electron-log';
|
||||||
|
|
||||||
|
export function handleTailchatMessage(
|
||||||
|
type: string,
|
||||||
|
payload: any,
|
||||||
|
webview: Electron.WebContents
|
||||||
|
) {
|
||||||
|
log.info('onMessage receive:', type, payload);
|
||||||
|
|
||||||
|
if (type === 'init') {
|
||||||
|
webview.executeJavaScript(generateInstallPluginScript());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue