日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

mediarecorder路径设置为localsocket_[基础教程]-04 NanUI 启动器 Bootstrap 的设置

發(fā)布時(shí)間:2023/12/15 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mediarecorder路径设置为localsocket_[基础教程]-04 NanUI 启动器 Bootstrap 的设置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

NanUI 啟動(dòng)器 Bootstrap 的設(shè)置

Bootstrap 類是初始化 NanUI 以及 Chromium Embedded 框架運(yùn)行環(huán)境的主要入口。

通常將 Bootstrap 放置到應(yīng)用程序的入口函數(shù) Main() 中,該類必須先通過 Initialize() 方法來告知 NanUI 進(jìn)入初始化流程,并且實(shí)例化 Bootstrap。Initialize()方法返回 Bootstrap 實(shí)例。此處約定,所有 Bootstrap 實(shí)例的內(nèi)置方法以及可能出現(xiàn)的其他擴(kuò)展方法(例如 AssemblyResourceHandler 的初始化方法)都必須返回該 Bootstrap 實(shí)例,以此來構(gòu)建 FluentAPI 樣式的編寫風(fēng)格。

Bootstrap 實(shí)例以 Run() 方法結(jié)束,并需要提供 Func<Formium|Form|ApplicationContext> 泛型作為其唯一參數(shù),作用是為應(yīng)用程序指定啟動(dòng)應(yīng)用程序的主窗體,由它來代替 Application.Run() 方法。因此,您在 Main()方法中無需再次執(zhí)行 Application.Run(mainform)方法。

Bootstrap 類

命名空間: NetDimension.NanUI

程序集: NetDimension.NanUI.dll

靜態(tài)成員

  • CEF_VERSION type:const string | 指示當(dāng)前框架的 Cef 版本
  • CommandLineArgs type:string[] | 當(dāng)前進(jìn)程的命令行參數(shù)

靜態(tài)屬性

  • ApplicationDataDirectory { get; } type:string | 獲取應(yīng)用程序的數(shù)據(jù)目錄,應(yīng)用數(shù)據(jù)目錄用于存放 NanUI 相關(guān)的數(shù)據(jù)。通常該目錄位于%appdata%Net Dimension Studio中。
  • CacheDirectory { get; } type:string | 獲取應(yīng)用程序 Chromium 的緩存目錄,緩存目錄用于存放 Chromium 的零時(shí)數(shù)據(jù),包含了瀏覽記錄、Cookies 數(shù)據(jù)、LocalStorage 數(shù)據(jù)等。通常該目錄位于應(yīng)用程序數(shù)據(jù)目錄中。
  • CurrentContext { get; } type:Bootstrap 實(shí)例 | 獲取當(dāng)前 Bootstrap 的單例實(shí)例。應(yīng)用程序初始化開始后才具備返回值;否則,返回 null。
  • DefaultBrowserSetting { get; } type:CfxBrowserSettings | Chromium 瀏覽器的默認(rèn)設(shè)置,關(guān)于瀏覽器設(shè)置 CefBrowserSettings 的相關(guān)設(shè)置信息以及功能,請(qǐng)參考此文檔。
  • LibCefDirPath { get; } type:string | 獲取 libcef.dll 的路徑。當(dāng) NanUI 自動(dòng)搜索到 Cef 以及 ChromiumFX 的二進(jìn)制依賴項(xiàng)時(shí),此屬性才具有返回值;否則返回 null,也代表 NanUI 沒能找到正確的依賴項(xiàng)路徑,啟動(dòng)應(yīng)用程序后將拋出異常。
  • PlatformArchitecture { get; } type:enum[x86|x64] | 獲取當(dāng)前應(yīng)用程序運(yùn)行的系統(tǒng)架構(gòu)
  • ResourceDirPath { get; } type:string | 獲取 Cef 的 Resources 目錄。Resources 目錄包含了 Chromium 運(yùn)行的必要文件,這些文件不可缺少。NanUI 會(huì)根據(jù) LibCefDirPath 的值自動(dòng)查找該目錄并且驗(yàn)證目錄文件,驗(yàn)證通過后此屬性才具有返回值;否則返回 null,同樣的啟動(dòng)應(yīng)用程序后將拋出異常。
  • SubprocessPath { get; } type:string | 返回 NanUI 子進(jìn)程可執(zhí)行文件的路徑。如果在 Bootstrap 初始化時(shí)指定了 UseDefaultBrowserSubpress() 特性,那么 NanUI 會(huì)自動(dòng)搜索到 NanUI 子進(jìn)程可執(zhí)行文件時(shí),此屬性才具有返回值;否則返回 null,啟動(dòng)應(yīng)用程序后將拋出異常。

靜態(tài)方法

  • void Announce() 在控制臺(tái)中打印 NanUI 的相關(guān)信息。這些信息在 NanUI 主進(jìn)程啟動(dòng)時(shí)已自動(dòng)打印。
  • int ExecuteProcess() 執(zhí)行應(yīng)用程序子進(jìn)程。如果單獨(dú)沒有指定子進(jìn)程或者沒有指定UseDefaultBrowserSubpress() 特性,那么應(yīng)用程序執(zhí)行自己作為 Chromium 的子進(jìn)程,否則將使用 Subprocess.exe 作為子進(jìn)程。
  • Bootstrap Initialize() 通知 NanUI 開始初始化運(yùn)行時(shí)環(huán)境,并返回 Bootstrap 類的實(shí)例。
  • void Log(params ColorToken[] tokens); 在控制臺(tái)中打印日志,NanUI 的控制臺(tái)打印模塊使用了ColoredConsole庫(kù)來實(shí)現(xiàn)控制臺(tái)內(nèi)容著色,有關(guān)信息請(qǐng)參考 ColoredConsole 項(xiàng)目。
  • void RegisterCustomResourceHandler(Func<CustomResource> resourceHandler); 注冊(cè)自定義資源處理器。使用該方法可以注冊(cè)任何 CustomResource 的派生類。資源處理器主要原理是通過攔截 Http 請(qǐng)求,當(dāng) Url 命中資源處理器中預(yù)設(shè)的 Url 時(shí),返回指定的文件或信息。
  • void Text(string text) 在控制臺(tái)中打印非重要信息。通常這些信息以黑底白字呈現(xiàn)。

實(shí)例方法

  • BeforeApplicaitonRun(Func<Bootstrap, bool> beforeRun); 設(shè)置一個(gè)在主窗體加載前的處理程序,參數(shù)傳入當(dāng)前 Bootstrap 實(shí)例,返回一個(gè) Boolean 類型指示是否繼續(xù)執(zhí)行 Run()方法。
  • DisableHighDpiSupported() 禁用 Chromium 的 HighDPI 支持。默認(rèn)情況下,NanUI 啟用了 Chromium 的 HighDPI 支持,如果您的應(yīng)用程序不是為新版 Windows 系統(tǒng)(例如 Windows 7)開發(fā)的,那么您需要顯式地指定這一特性來避免 Chromium 跟隨系統(tǒng) DPI 縮放。
  • RegisterChromiumExtension(string name, Func<ChromiumExtensionBase> register) 為 Chromium 的 Javascript 環(huán)境注冊(cè)擴(kuò)展內(nèi)容。參數(shù)name為該擴(kuò)展的唯一名稱,參數(shù)register是指定了返回值為ChromiumExtensionBase類型的代理,ChromiumExtensionBase是任何自定義擴(kuò)展的基類。
  • UseDefaultBrowserSubpress() 指定使用 NanUI 默認(rèn)的子進(jìn)程應(yīng)用程序。要使用此特性,您需要提前為您的應(yīng)用程序安裝 NanUI 子進(jìn)程應(yīng)用程序。
  • WhenLibCefNotFound(Action<LibCefNotFoundArgs> action) 設(shè)置 NanUI 沒能自動(dòng)找到 libcef.dll 依賴是的處理程序。參數(shù)LibCefNotFoundArgs包含了幾個(gè)只讀屬性:Architecture - 只是當(dāng)前應(yīng)用運(yùn)行的系統(tǒng)架構(gòu);ApplicationStartupPath - 應(yīng)用程序的啟動(dòng)路徑;DataPath - 應(yīng)用程序的數(shù)據(jù)路徑。在此代理中,您可以實(shí)現(xiàn)自己的路徑查找邏輯,或者實(shí)現(xiàn) Cef 依賴項(xiàng)目的遠(yuǎn)程下載等操作,最后,把您自定義的 Cef 依賴項(xiàng)存放地址反寫到 LibCefDir 屬性中,系統(tǒng)將再次檢測(cè)您指定的路徑,如果符合 NanUI 的運(yùn)行要求,那么應(yīng)用程序繼續(xù)初始化工作;否則,將拋出異常。
  • WithApplicationDataDirectroty(string dataDir) 設(shè)置自定義的應(yīng)用程序數(shù)據(jù)目錄路徑。
  • WithCustomLibCefDirPath(string libCefDirPath) 設(shè)置自定義的 Cef 依賴項(xiàng)存放目錄路徑。
  • WithDebugModeEnabled() 開啟調(diào)試模式。默認(rèn)情況下 NanUI 的調(diào)試模式是關(guān)閉的,非調(diào)試模式下 NanUI 禁用了某些非必要日志的輸出,處了編輯菜單項(xiàng)外,移除了 Chromium 的其他上下文菜單。
  • WithChromiumCommandLineArguments(Action<string, CfxCommandLine> buildAction); 自定義 Chromium 的命令行參數(shù),代理方法的第一個(gè)參數(shù)是 processType,第二個(gè)參數(shù)是命令行參數(shù)的快捷設(shè)置器。有關(guān)于 Chromium 的命令行參數(shù),請(qǐng)參考此文檔。
  • WithChromiumSettings(Action<CfxSettings> buildAction) 自定義 Chromium 的各項(xiàng)參數(shù)。代理方法的第一個(gè)參數(shù)為 Chromium 設(shè)置的快捷設(shè)置器。有關(guān)于 Chromium 設(shè)置的相關(guān)參數(shù),請(qǐng)參考此文檔。
  • void Run(Func<Formium|Form|ApplicationContext> runAction) 初始化 NanUI 并運(yùn)行應(yīng)用程序主窗體。執(zhí)行本方法意味著 NanUI 運(yùn)行環(huán)境初始化完成。您只能執(zhí)行本方法一次,多次執(zhí)行本方法將拋出異常。

示例

static void Main() {Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);// 在此處執(zhí)行IO操作或者單例檢測(cè)操作,有可能導(dǎo)致應(yīng)用程序執(zhí)行異常。Bootstrap.Initialize().WithChromiumCommandLineArguments((procesName, cmd)=> {// 在此處處理CEF的命令行參數(shù)// Process the command line arguments here which are used to config the CEF processes。}).WithChromiumSettings(settings=> {// 在此處處理CEF的設(shè)置// Handle CEF settings here})//.UseDefaultBrowserSubpress().WhenLibCefNotFound(args => {// 如果NanUI啟動(dòng)器沒有檢測(cè)到正確的CEF以及ChromiumFX運(yùn)行環(huán)境,將執(zhí)行此處理過程。// This process handler will be performed if the NanUI bootstrapper does not detect correct CEF & ChromiumFX runtime enviroment.MessageBox.Show("沒有檢測(cè)到Chromium Embedded運(yùn)行環(huán)境,請(qǐng)確認(rèn)libcef環(huán)境配置正確。", "libcef.dll is not found", MessageBoxButtons.OK, MessageBoxIcon.Error);// 在此過程中,你可以自己實(shí)現(xiàn)檢測(cè)邏輯(當(dāng)然高端一點(diǎn)的做法,可以在此實(shí)現(xiàn)動(dòng)態(tài)下載的功能)。指定返回LibCefDir參數(shù),啟動(dòng)器會(huì)再次檢測(cè)指定的位置是否符合運(yùn)行條件,如果符合程序?qū)⒗^續(xù)執(zhí)行,否則將拋出異常。// You can implement the detection logic yourself here. Of course, a high-end approach, you can implement a function to download the cef & cfx from your own server and deploy to any place you like. Specify the return parameter LibCefDir, the bootstrapper will check whether the specified location meets the running conditions again, if it matches, the program will continue to execute, otherwise it will throw an exception.//args.LibCefDir = ""}).Run(() =>{// 需要返回一個(gè)HostWindow的實(shí)例作為主要的啟動(dòng)窗口// Need to return a instance of HostWindow as the main window of the application.return new MainWindow();}); }

可能遇到的問題

特別提示: 不建議您在 Main 方法中執(zhí)行其他操作,鑒于 Chromium 的多進(jìn)程模型,Bootstrap 類初始化代碼之前的其他代碼將被執(zhí)行多次。

例如您執(zhí)行了下面的代碼,那么將會(huì)出現(xiàn)至少 3 個(gè)以上的窗體。

var form = new Form();Bootstrap.Initialize().Run(()=> ...);

又比如您如果添加了應(yīng)用程序單例檢測(cè)代碼禁止了多個(gè)進(jìn)程啟動(dòng),那么將造成應(yīng)用程序無法啟動(dòng)渲染進(jìn)程從而導(dǎo)致窗體無內(nèi)容顯示。

如果您一定要實(shí)現(xiàn)應(yīng)用程序的單例執(zhí)行,請(qǐng)確保使用 UseDefaultBrowserSubpress 特性,并且將單例檢測(cè)的邏輯放到 Run()方法的的代理中執(zhí)行。

總結(jié)

以上是生活随笔為你收集整理的mediarecorder路径设置为localsocket_[基础教程]-04 NanUI 启动器 Bootstrap 的设置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲免费网站在线观看 | 无码任你躁久久久久久久 | 涩涩屋视频 | 偷偷操不一样的99 | 久久免费福利 | 久久久一二三 | 国产精品伦一区二区三级古装电影 | 国产精品久久久久久妇女6080 | 亚洲国产精品激情在线观看 | 绿帽av| 大乳村妇的性需求 | 成人在线视频免费播放 | 国产精品久久久久久妇女 | 日爽夜爽| 亚洲成人一 | 视频精品一区二区 | 少妇的性事hd | 91精品国产一区二区三区蜜臀 | 香蕉在线观看视频 | 超碰国产一区二区三区 | 亚洲成人播放 | 丰满少妇一区二区三区 | 91快射| 强公把我次次高潮hd | 在线观看麻豆 | 伊人日日夜夜 | 国产a∨精品一区二区三区仙踪林 | av手机在线 | 国产视频福利在线 | 国产一区二区三区视频在线播放 | 一区二区三区欧美精品 | 亚洲乱色熟女一区二区三区 | 免费观看一级视频 | 国产午夜麻豆影院在线观看 | 亚洲第一区视频 | 日韩一级视频在线观看 | 500福利视频导航 | 亚洲精选在线 | 黄av资源 | 网站免费视频www | 美女扒开屁股让男人捅 | 一级黄色片一级黄色片 | 貂蝉被到爽流白浆在线观看 | 色九月婷婷 | 国产高清片 | 2019av视频 | 亚洲性视频网站 | 91av短视频 | 亚洲av无码一区二区三区人 | 一级视频在线观看 | 中文字幕人乱码中文字 | 亚洲a网站 | 久久在线免费视频 | 国产手机看片 | 亚洲精品91天天久久人人 | 日韩一区二区不卡视频 | 国内精品视频在线播放 | 日本黄色一级 | 欧美精品网站 | 精品国产专区 | 黄色av电影网站 | 99热免费观看 | 国产精品videossex久久发布 | 亚洲欧美激情小说另类 | 国产精品久久久爽爽爽麻豆色哟哟 | 国产视频一区二区三区在线播放 | 免费一区| 天天想你在线观看完整版高清 | 国产乱真实合集 | 人操人操| 99免费国产| 亚洲成人一区二区三区 | 国产丰满大乳奶水在线视频 | 天天爱天天射 | 菲律宾av | 国产黄色在线 | 永久免费快色 | 二级黄色大片 | 成人av高清在线观看 | 色妹子综合 | 免费色网址 | 日本高清视频www夜色资源 | 亚洲精品久久久久久久久 | 日韩av一卡二卡 | 亚洲精品v天堂中文字幕 | 原神女裸体看个够无遮挡 | 国产ts在线观看 | 人人爱爱 | 久草免费在线视频观看 | 女人的洗澡毛片毛多 | 波多野吉衣在线观看视频 | 欧美aⅴ | 影音先锋中文字幕一区 | 一区二区韩国 | 丰满人妻翻云覆雨呻吟视频 | wwwxx在线| 最新的黄色网址 | 日韩免费av一区二区 | 日本妈妈9|