中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

公司網(wǎng)站建立教程aso優(yōu)化平臺(tái)有哪些

公司網(wǎng)站建立教程,aso優(yōu)化平臺(tái)有哪些,山西省建設(shè)注冊(cè)中心網(wǎng)站,仙居網(wǎng)站制作單實(shí)例的思路 首次通過(guò)雙擊文件打開(kāi)應(yīng)用 將filePath傳給render 使用中的應(yīng)用,再次雙擊打開(kāi)文件 第一個(gè)實(shí)例創(chuàng)建時(shí),同時(shí)創(chuàng)建一個(gè)通信服務(wù)器net.createServer()第二個(gè)實(shí)例創(chuàng)建時(shí),連接第一個(gè)服務(wù)器net.createConnection()將再次打開(kāi)的filePath傳…

單實(shí)例的思路

  1. 首次通過(guò)雙擊文件打開(kāi)應(yīng)用
    • filePath傳給render
  2. 使用中的應(yīng)用,再次雙擊打開(kāi)文件
    • 第一個(gè)實(shí)例創(chuàng)建時(shí),同時(shí)創(chuàng)建一個(gè)通信服務(wù)器net.createServer()
    • 第二個(gè)實(shí)例創(chuàng)建時(shí),連接第一個(gè)服務(wù)器net.createConnection()
    • 將再次打開(kāi)的filePath傳遞給第一個(gè)實(shí)例
    • 然后在傳遞給render

1. 首次通過(guò)雙擊文件打開(kāi)應(yīng)用

在主進(jìn)程展示的時(shí)候傳遞filePath

  mainWindow.on('ready-to-show', () => {//隱藏啟動(dòng)頁(yè)if (loadingWindow && !loadingWindow?.isDestroyed()) {loadingWindow?.hide()loadingWindow?.removeAllListeners()loadingWindow?.destroy()}mainWindow.show()/*** @description 雙擊打開(kāi)本地文件*/openFileFromDoubleClick(mainWindow)})

獲取filePath并傳遞給render

export function openFileFromDoubleClick(mainWindow) {if (process.argv.length >= 2) {const argv = process.argv.slice(app.isPackaged ? 1 : 2)const filePath =argv.find((arg) => arg.endsWith('.krzj')) ||argv.find((arg) => arg.includes('--file'))?.split('=')[1]if (filePath && filePath.endsWith('.krzj')) {// 當(dāng)頁(yè)面加載完成后,獲取到vue-ready事件后,發(fā)送open-file事件ipcMain.once('vue-ready', () => {mainWindow.webContents.send('open-file', filePath)})}}
}

2. 注冊(cè)preload事件

 //雙擊打開(kāi)文件onOpenFile: (callback: any) => ipcRenderer.on('open-file', callback),//消息傳遞send: (channel, data) => ipcRenderer.send(channel, data),

3. render接收信息

需要先通知主進(jìn)程render加載完畢,才從主進(jìn)程拿filePath,否則獲取不到

onMounted(() => {// 在health接口返回后 獲取雙擊打開(kāi)的文件路徑window.api.send('vue-ready')window.api.onOpenFile((event: any, path: string) => {if (path && route.path === '/file') {// 在當(dāng)前頁(yè)直接獲取跳轉(zhuǎn)openProjectFile(path)} else if (path && route.path !== '/file') {// 在非當(dāng)前頁(yè)則回來(lái)后獲取跳轉(zhuǎn)router.push('/file')openProjectFile(path)}})
})

4. 主進(jìn)程創(chuàng)建通信服務(wù)器

// 鎖定應(yīng)用只能單列運(yùn)行
const appSingleInstance = app.requestSingleInstanceLock()
if (!appSingleInstance) {// 第二個(gè)實(shí)例 - 連接第一個(gè)實(shí)例的服務(wù)器sendFilePathToFisrtInstance(PORT)app.quit()
} else {// 第一個(gè)實(shí)例 - 創(chuàng)建服務(wù)器 獲取第二個(gè)實(shí)例發(fā)送的filepath 封裝后不能再發(fā)送server = net.createServer((socket) => {socket.on('data', (data) => {mainWindow?.webContents.send('open-file', data.toString())})})server.listen(PORT)server.on('error', (err) => console.error('服務(wù)器錯(cuò)誤:', err))
}

5. 第二個(gè)實(shí)例連接服務(wù)器

/*** @description 第二個(gè)實(shí)例 - 連接第一個(gè)實(shí)例的服務(wù)器* @export*/
export function sendFilePathToFisrtInstance(port: number) {const argv = process.argv.slice(app.isPackaged ? 1 : 2)const filePath =argv.find((arg) => arg.endsWith('.krzj')) ||argv.find((arg) => arg.includes('--file'))?.split('=')[1]if (filePath) {const client = net.createConnection({ port: port }, () => {client.write(filePath)client.end()})client.on('error', () => {})}
}

開(kāi)發(fā)時(shí)如何本地測(cè)試打開(kāi)多個(gè)文件

使用的是electron-vite,在package.json創(chuàng)建運(yùn)行腳本,一條就是打開(kāi)一個(gè)文件,可以開(kāi)多個(gè)終端打開(kāi)多個(gè)文件

 "open-file": "electron-vite dev -- --file \"D:/kr/untitled01.krzj\"","open-file1": "electron-vite dev -- --file \"D:/kr/untitled02.krzj\"","open-file2": "electron-vite dev -- --file \"D:/kr/untitled03.krzj\""

windows如何關(guān)聯(lián)自定義文件關(guān)聯(lián)啟動(dòng)

我是用的是electron-builder,然后在electron-builder.yml中配置就行,非常簡(jiǎn)單

# 設(shè)置自定義文件關(guān)聯(lián)啟動(dòng)
fileAssociations:description: kingrayFile# 自定義文件后綴ext: krzj# 自定義文件圖標(biāo)icon: build/icons/win/icon.ico
http://www.risenshineclean.com/news/11305.html

相關(guān)文章:

  • 重慶建站模板源碼推動(dòng)防控措施持續(xù)優(yōu)化
  • 用淘寶評(píng)論做網(wǎng)站個(gè)人博客網(wǎng)頁(yè)制作
  • 北京國(guó)家建設(shè)部網(wǎng)站首頁(yè)上海百度推廣電話
  • 購(gòu)買(mǎi)云服務(wù)器后怎么做網(wǎng)站seo優(yōu)化幾個(gè)關(guān)鍵詞
  • 建設(shè)大型網(wǎng)站世界足球排名前100名
  • wordpress做論壇網(wǎng)站免費(fèi)推廣網(wǎng)站排行榜
  • 靜態(tài)網(wǎng)站可以做哪些內(nèi)容小程序開(kāi)發(fā)框架
  • 免費(fèi)下載ppt模板的網(wǎng)站有哪些站長(zhǎng)工具seo源碼
  • 做交易網(wǎng)站百度seo排名如何提升
  • 溫州網(wǎng)站建設(shè)前十公司大同優(yōu)化推廣
  • 美圖秀秀可以做網(wǎng)站嗎河南省網(wǎng)站
  • 加強(qiáng)網(wǎng)站政務(wù)服務(wù)建設(shè)百度指數(shù)使用方法
  • 印刷網(wǎng)站建設(shè) 優(yōu)幫云品牌運(yùn)營(yíng)
  • 中英切換的網(wǎng)站咋做中國(guó)最大網(wǎng)站排名
  • 做跳轉(zhuǎn)鏈接到自己的網(wǎng)站谷歌瀏覽器官網(wǎng)手機(jī)版
  • 提供網(wǎng)站技術(shù)支持系統(tǒng)優(yōu)化軟件排行榜
  • 做網(wǎng)站公司鄭州鄭州的網(wǎng)站建設(shè)公司排名湖南百度推廣
  • 桂林旅游搜索seo神器
  • 新西蘭網(wǎng)站建設(shè)山東seo多少錢(qián)
  • 幫別人做網(wǎng)站自己為什么會(huì)被抓近10天的時(shí)政新聞
  • 做英文網(wǎng)站用什么字體好響應(yīng)式網(wǎng)站模板的應(yīng)用
  • 手機(jī)做圖片設(shè)計(jì)哪個(gè)軟件好湖南正規(guī)seo優(yōu)化
  • 中山建網(wǎng)站費(fèi)用多少百度推廣關(guān)鍵詞排名規(guī)則
  • 做網(wǎng)站的品牌公司蘭州網(wǎng)絡(luò)推廣
  • 做網(wǎng)站架構(gòu)圖互聯(lián)網(wǎng)推廣渠道有哪些
  • 建網(wǎng)站需要的設(shè)備google官方入口
  • 網(wǎng)站建設(shè)周記廣州軟件系統(tǒng)開(kāi)發(fā)seo推廣
  • wordpress 新建模板頁(yè)女裝標(biāo)題優(yōu)化關(guān)鍵詞
  • 高碑店網(wǎng)站建設(shè)價(jià)格百度互聯(lián)網(wǎng)營(yíng)銷(xiāo)是什么
  • 網(wǎng)站配色教程正規(guī)推廣賺傭金的平臺(tái)