diff --git a/src/background.ts b/src/background.ts index ebc73800..a450b2f0 100644 --- a/src/background.ts +++ b/src/background.ts @@ -1,7 +1,6 @@ 'use strict' import { app, protocol, ipcMain, screen } from 'electron' -import { createProtocol } from 'vue-cli-plugin-electron-builder/lib' import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer' import { setupShortcuts } from './main/shortcuts' import { createTray } from './main/tray' @@ -54,7 +53,6 @@ app.on('ready', async () => { } } - createProtocol('app') createFileProtocol() setupConfigEvents() diff --git a/src/main/app-file-protocol.ts b/src/main/app-file-protocol.ts index 353a4a43..7e313cca 100644 --- a/src/main/app-file-protocol.ts +++ b/src/main/app-file-protocol.ts @@ -1,10 +1,17 @@ import { protocol, app, ipcMain } from 'electron' import { IMPORT_FILE } from '@/ipc/ipc-event' +import { URL } from 'url' import path from 'path' import crypto from 'crypto' import fs from 'fs' export function createFileProtocol () { + protocol.registerFileProtocol('app', (req, resp) => { + const url = new URL(req.url) + const pathName = path.join(url.host, url.pathname) + resp({ path: path.join(__dirname, pathName) }) + }) + protocol.registerFileProtocol('app-file', (req, resp) => { resp({ path: path.join(app.getPath('userData'), 'apt-data/files', req.url.substr('app-file://'.length)) }) })