国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

electron+vue3全家桶+vite項目搭建【23】url喚醒應(yīng)用,并傳遞參數(shù)

這篇具有很好參考價值的文章主要介紹了electron+vue3全家桶+vite項目搭建【23】url喚醒應(yīng)用,并傳遞參數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

引入

demo項目地址

很多場景下我們都希望通過url快速喚醒應(yīng)用,例如百度網(wǎng)盤,在網(wǎng)頁中喚醒應(yīng)用,并傳遞下載鏈接,在electron中要實現(xiàn)這樣的效果,就需要針對不同的平臺做對應(yīng)的處理。

實現(xiàn)效果

electron+vue3全家桶+vite項目搭建【23】url喚醒應(yīng)用,并傳遞參數(shù),electron+vue3全家桶,electron,前端,vue3全家桶,url喚醒應(yīng)用,electron實戰(zhàn)技巧

實現(xiàn)步驟

1.主進(jìn)程中補(bǔ)充調(diào)整代碼

  • windows中需要注冊協(xié)議,指定被喚醒時如何處理url
  • windows當(dāng)頁面被喚醒后,需要監(jiān)聽second-instance 事件,即啟動第二個實例的事件,這里我們直接控制應(yīng)用單實例,當(dāng)url企圖打開第二個實例的時候,我們聚焦第一個實例,并處理url參數(shù)
  • mac中會監(jiān)聽open-url事件,我們只需在此事件中處理對應(yīng)的url地址即可

electron\main\index.ts

//*************** 應(yīng)用喚醒相關(guān) ********************/
// 注冊協(xié)議
const PROTOCOL = "bcxlelectrondemo";
/**添加注冊表信息 用于瀏覽器啟動客戶端 */
function registerScheme() {
  const args = [];
  if (!app.isPackaged) {
    // 如果是開發(fā)階段,需要把我們的腳本的絕對路徑加入?yún)?shù)中
    args.push(join(process.argv[1]));
  }
  // 加一個 `--` 以確保后面的參數(shù)不被 Electron 處理
  args.push("--");
  app.setAsDefaultProtocolClient(PROTOCOL, process.execPath, args);
  handleArgv(process.argv);
}

// 處理瀏覽器打開應(yīng)用的啟動參數(shù)信息
function handleArgv(argv: string[]) {
  const prefix = `${PROTOCOL}:`;
  // 開發(fā)階段,跳過前兩個參數(shù)(`electron.exe .`)
  // 打包后,跳過第一個參數(shù)(`myapp.exe`)
  const offset = app.isPackaged ? 1 : 2;
  const url = argv.find((arg, i) => i >= offset && arg.startsWith(prefix));
  if (url) handleUrl(url);
}
// 房間號
let roomCode = "";

// 處理url打開應(yīng)用的請求
function handleUrl(url: string) {
  // bcxlelectrondemo://joinRoom?roomCode=123
  const urlObj = new URL(url);
  const { searchParams } = urlObj;
  roomCode = searchParams.get("roomCode") || "";
  if (win && win.webContents) {
    win?.webContents.send("launch-app", roomCode);
  }
}

// 返回房間號,主要用于mac主動獲取,因為mac在執(zhí)行handleUrl操作時,可能頁面窗口還未初始化完成
ipcMain.on("get-roomCode", (e) => {
  e.returnValue = roomCode;
});
// 注冊協(xié)議,用于瀏覽器打開應(yīng)用
registerScheme();
// macOS 下通過協(xié)議URL啟動時,主實例會通過 open-url 事件接收這個 URL
app.on('open-url', (event, urlStr) => {
  handleUrl(urlStr);
});

//*************** 應(yīng)用喚醒相關(guān) ********************/

2.在src目錄下創(chuàng)建scripts目錄,然后新建一個appInit.ts文件,我們監(jiān)聽來自出主進(jìn)程的初始化通知

  • src\scripts\appInit.ts
import { ipcRenderer } from "electron";

// 監(jiān)聽初始化
ipcRenderer.on("launch-app", (_, roomCode) => {
  console.log("收到來自url的房間號:", roomCode);
});

測試代碼

我們在渲染進(jìn)程中補(bǔ)充代碼,主動獲取房間號

  • 因為應(yīng)用通過url喚醒時,可能頁面窗口還未初始化完成,這時win是null,收不到“l(fā)aunch-app”的監(jiān)聽
  • src\components\HelloWorld.vue
<template>
      <el-button @click="getRoomCodeByUrl">獲取url中傳來的房間號</el-button>
</template>
<script>
// 通過瀏覽器喚醒應(yīng)用的url獲取房間號
function getRoomCodeByUrl() {
  const roomCode = ipcRenderer.sendSync("get-roomCode");
  myUtils.message(`房間號為:${roomCode}`, "success");
}    
</script>

注意:安裝后必須打開一次應(yīng)用【應(yīng)用會在注冊表添加信息】,才能通過url進(jìn)行喚醒
electron+vue3全家桶+vite項目搭建【23】url喚醒應(yīng)用,并傳遞參數(shù),electron+vue3全家桶,electron,前端,vue3全家桶,url喚醒應(yīng)用,electron實戰(zhàn)技巧文章來源地址http://www.zghlxwxcb.cn/news/detail-595593.html

到了這里,關(guān)于electron+vue3全家桶+vite項目搭建【23】url喚醒應(yīng)用,并傳遞參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • electron+vue3全家桶+vite項目搭建【16.1】electron多窗口,pinia狀態(tài)同步,擴(kuò)展store方法,主動同步pinia的狀態(tài)【推薦】

    electron+vue3全家桶+vite項目搭建【16.1】electron多窗口,pinia狀態(tài)同步,擴(kuò)展store方法,主動同步pinia的狀態(tài)【推薦】

    demo項目地址 我們之前寫了一個自動同步pinia狀態(tài)的插件,可以參考如下文章 electron+vue3全家桶+vite項目搭建【16】electron多窗口,pinia狀態(tài)無法同步更新問題解決 這里面有一個較大的弊端,就是pinia中的store,只要其中的某個屬性修改,就會觸發(fā)這個store的全量更新,當(dāng)我們有一

    2024年02月11日
    瀏覽(137)
  • 基于Electron24+Vite4+Vue3搭建桌面端應(yīng)用

    基于Electron24+Vite4+Vue3搭建桌面端應(yīng)用

    一說到創(chuàng)建桌面應(yīng)用,就不得不提及Electron和Tauri框架。這次給大家主要分享的是基于electron最新版本整合vite4.x構(gòu)建vue3桌面端應(yīng)用程序。 之前也有使用vite2+vue3+electronc創(chuàng)建桌面端項目,不過? vue-cli-plugin-electron-builder ?腳手架插件構(gòu)建的項目electron版本只有13.x。如今electron版本

    2024年02月06日
    瀏覽(46)
  • 現(xiàn)有的vue3+ts+vite項目集成electron

    現(xiàn)有的vue3+ts+vite項目集成electron

    Electron是使用JavaScript,HTML和CSS構(gòu)建跨平臺的桌面應(yīng)用程序框架。 Electron兼容Mac、Windows和Linux,可以構(gòu)建出三個平臺的應(yīng)用程序。 安裝依賴 原來有一個vue3+ts+vite+pnpm的項目,其中sub-modules是子項目,web是主入口項目,項目結(jié)構(gòu)如下: 需要將其轉(zhuǎn)換成Electron項目,只需要在原來

    2024年02月12日
    瀏覽(99)
  • 快速搭建Electron+Vite3+Vue3+TypeScript5腳手架 (無需梯子,快速安裝Electron)

    快速搭建Electron+Vite3+Vue3+TypeScript5腳手架 (無需梯子,快速安裝Electron)

    Electron是一個使用 JavaScript、HTML 和 CSS 構(gòu)建桌面應(yīng)用程序的框架。 嵌入?Chromium?和?Node.js?到 二進(jìn)制的 Electron 允許您保持一個 JavaScript 代碼代碼庫并創(chuàng)建 在Windows上運(yùn)行的跨平臺應(yīng)用 macOS和Linux——不需要本地開發(fā)經(jīng)驗(這段話是來自官網(wǎng))。 根據(jù)vite官網(wǎng)文檔 項目創(chuàng)建完成后進(jìn)

    2024年02月02日
    瀏覽(109)
  • 使用vue3+vite+elctron構(gòu)建小項目介紹Electron進(jìn)程間通信

    使用vue3+vite+elctron構(gòu)建小項目介紹Electron進(jìn)程間通信

    進(jìn)程間通信 (IPC) 是在 Electron 中構(gòu)建功能豐富的桌面應(yīng)用程序的關(guān)鍵部分之一。 由于主進(jìn)程和渲染器進(jìn)程在 Electron 的進(jìn)程模型具有不同的職責(zé),因此 IPC 是執(zhí)行許多常見任務(wù)的唯一方法,例如從 UI 調(diào)用原生 API 或從原生菜單觸發(fā) Web 內(nèi)容的更改。 在 Electron 中,進(jìn)程使用 ipcM

    2024年02月06日
    瀏覽(97)
  • vite+ vue3(現(xiàn)有項目或者新項目)+electron打包教程,以及electron代碼熱重載頁面(保姆級教程),一文帶你走完全過程

    vite+ vue3(現(xiàn)有項目或者新項目)+electron打包教程,以及electron代碼熱重載頁面(保姆級教程),一文帶你走完全過程

    ? 1.刪掉type這個字段,不然會報錯 ?2.然后加上\\\"main\\\": \\\"electron/main.js\\\", ?3.在scripts字段中加入啟動electron的命令:如下圖 5.這時候你去打開控制臺輸入輸入npm run start會得到一片空白,展示如下頁面 1.因為現(xiàn)在監(jiān)聽的是vue打包后的dist文件夾中的index.html 2.我就不教你們怎么打開那個

    2024年02月11日
    瀏覽(649)
  • Vue3+Vite項目搭建

    Vue3+Vite項目搭建

    技術(shù)棧:vue3+ts+vite+vue-router+element-plus+pinia 為什么選擇vite而不是vue-cli: vite 是一個基于 Vue3 單文件組件的非打包開發(fā)服務(wù)器,它做到了本地快速開發(fā)啟動: 快速的冷啟動,不需要等待打包操作; 即時的熱模塊更新,替換性能和模塊數(shù)量的解耦讓更新飛起; 真正的按需編譯,

    2024年02月08日
    瀏覽(33)
  • vite搭建vue3項目

    vite搭建vue3項目

    參考視頻 創(chuàng)建一個項目名稱的文件夾 執(zhí)行命令:npm init -y 快速的創(chuàng)建一個默認(rèn)的包信息 安裝vite: npm i vite -D -D開發(fā)環(huán)境的依賴 安裝vue,現(xiàn)在默認(rèn)是vue3. 執(zhí)行命令: npm i vue -D/-S都可以 創(chuàng)建index.html文件,src=“入口js文件” ,添加id=\\\"app\\\"掛載點 創(chuàng)建src目錄下的js入口文件main.js 創(chuàng)建

    2024年02月09日
    瀏覽(28)
  • Vue3 + Vite 實現(xiàn)項目搭建

    Vue3 + Vite 實現(xiàn)項目搭建

    首先嘞,這個博文就是簡單的記錄一下自己的對 Vue3 的學(xué)習(xí),所以說呢,并不代表他是完全正確的。 創(chuàng)建 Vue3 項目有兩種常見的方式,一種是想 vue2 版本一樣使用腳手架工具創(chuàng)建,創(chuàng)建 vue3 項目的腳手架必須是4版本以上的,另一種方法就是使用 vite 創(chuàng)建,為什么使用 vite 呢

    2024年02月11日
    瀏覽(29)
  • 02_使用Vite搭建Vue3項目

    02_使用Vite搭建Vue3項目

    首先插件添加:Live Server、Vue - Official、Vue VSCode Snippets、別名路徑跳轉(zhuǎn) 官網(wǎng):Vite | 下一代的前端工具鏈 (vitejs.dev) 1.創(chuàng)建一個文件夾VueApp,運(yùn)行cmd轉(zhuǎn)到該目錄下,執(zhí)行命令:npm create vite@latest 2.然后轉(zhuǎn)到vuedemo目錄下命令:cd vuedemo, 3.執(zhí)行命令:npm install。文件夾內(nèi)會新添加no

    2024年04月08日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包