整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線:

          VB6高性能拼接JSon字符串

          B6高性能拼接Json字符串庫(kù)!

          System.text.dll是用社區(qū)版c++為VB6編寫(xiě)的com組件,簡(jiǎn)單幾步即可免注冊(cè)調(diào)用,完全免費(fèi)。經(jīng)測(cè)試,海量字符串拼接時(shí)速度接近c++的性能。

          JsonBuilder對(duì)象

          說(shuō)明:字符串高性能拼接對(duì)象,接近C++的性能。

          示例1
          Dim JStrB As JsonBuilder

          Set JStrB = New JsonBuilder
          With JStrB
          .Node_Start
          .Node_AddKey "code", 200, True
          .Node_AddKey "message", "OK"
          .Node_End
          Debug.Print .ToString()
          End With
          Set JStrB = Nothing


          結(jié)果:{"code":200,"message":"OK"}

          示例2
          Dim JStrB As JsonBuilder

          Set JStrB = New JsonBuilder
          With JStrB
          .Node_Start
          .Node_AddKey "code", 200, True
          .Node_AddKey "message", "OK"
          .Son_Begin "Data"
          .Son_AddKey "ID", 1, True
          .Son_AddKey "Title", "測(cè)試"
          .Son_AddKey "Price", "12", True
          .Son_Finish
          .Node_End
          Debug.Print .ToString()
          End With
          Set JStrB = Nothing



          結(jié)果:{"code":200,"message":"OK","Data":{"ID":1,"Title":"測(cè)試","Price":12}}

          示例3
          Dim JStrB As JsonBuilder

          Set JStrB = New JsonBuilder
          With JStrB
          .Node_Start
          .Node_AddKey "code", 200, True
          .Node_AddKey "message", "OK"
          .Son_Begin "Data"
          .Son_AddKey "ID", 1, True
          .Son_AddKey "Title", "測(cè)試"
          .Son_AddKey "Price", "12", True
          .Son_Finish
          .Node_End
          Debug.Print .ToString()
          End With
          Set JStrB = Nothing



          結(jié)果:{"code":200,"message":"OK","Data":{"ID":1,"Title":"測(cè)試","Price":12}}

          Dim JStrB As JsonBuilder

          Set JStrB = New JsonBuilder
          With JStrB
          .Array_Begin

          '張三
          .Node_Start
          .Node_AddKey "Name", "張三"
          .Node_AddKey "Age", "22", True
          .Node_AddArrayText "Color", """Red"",""Green"""
          '..Love
          .SonArray_Begin "Love"
          .SonArray_Node_Start
          .SonArray_Node_AddKey "Name", "閱讀"
          .SonArray_Node_AddArrayText "Color", """Red"",""Green"""
          .SonArray_Node_End
          .SonArray_Node_Start
          .SonArray_Node_AddKey "Name", "書(shū)法"
          .SonArray_Node_AddArrayText "Color", """Red"",""Green"""
          .SonArray_Node_End
          .SonArray_Finish
          '..Property
          .Son_Begin "Property"
          .Son_AddKey "Account", "zhangsan"
          .Son_AddKey "OrderID", 1, True
          .Son_Finish
          '..Cart
          .SonArray_Begin "Cart"
          .SonArray_Node_Start
          .SonArray_Node_AddKey "Name", "水滸傳"
          .SonArray_Node_AddArrayText "Color", """Red"",""Green"""
          .SonArray_Node_End
          .SonArray_Node_Start
          .SonArray_Node_AddKey "Name", "紅樓夢(mèng)"
          .SonArray_Node_AddArrayText "Color", """Red"",""Green"""
          .SonArray_Node_End
          .SonArray_Finish
          '..Payer
          .Son_Begin "Payer"
          .Son_AddKey "Account", "zhangsan"
          .Son_AddKey "PayerID", 1, True
          .Son_AddArrayText "Color", """Red"",""Green"""
          .Son_Finish
          .Node_AddKey "Province", "北京"
          .Node_End

          '李四
          .Node_Start
          .Node_AddKey "Name", "李四"
          .Node_AddKey "Age", "30", True
          .Node_AddArrayText "Color", """無(wú)"""
          '..Love
          .SonArray_Begin "Love"
          .SonArray_Node_Start
          .SonArray_Node_AddKey "Name", "音樂(lè)"
          .SonArray_Node_AddArrayText "Color", """Red"",""Green"""
          .SonArray_Node_End
          .SonArray_Node_Start
          .SonArray_Node_AddKey "Name", "閱讀"
          .SonArray_Node_AddArrayText "Color", """Red"",""Green"""
          .SonArray_Node_End
          .SonArray_Finish
          '..Property
          .Son_Begin "Property"
          .Son_AddKey "Account", "lisi"
          .Son_AddKey "OrderID", 2, True
          .Son_Finish
          '..Cart
          .SonArray_Begin "Cart"
          .SonArray_Node_Start
          .SonArray_Node_AddKey "Name", "西游記"
          .SonArray_Node_AddArrayText "Color", """Red"",""Green"""
          .SonArray_Node_End
          .SonArray_Node_Start
          .SonArray_Node_AddKey "Name", "射雕英雄傳"
          .SonArray_Node_AddArrayText "Color", """Red"",""Green"""
          .SonArray_Node_End
          .SonArray_Finish
          '..Payer
          .Son_Begin "Payer"
          .Son_AddKey "Account", "lisi"
          .Son_AddKey "OrderID", 2, True
          .Son_AddArrayText "Color", """Red"",""Green"""
          .Son_Finish
          .Node_AddKey "Province", "上海"
          .Node_End

          .Array_Finish
          Debug.Print .ToString()
          End With
          Set JStrB = Nothing

          結(jié)果:[{"Name":"張三","Age":22,"Color":["Red","Green"],"Love":[{"Name":"閱讀","Color":["Red","Green"]},{"Name":"書(shū)法","Color":["Red","Green"]}],"Property":{"Account":"zhangsan","OrderID":1},"Cart":[{"Name":"水滸傳","Color":["Red","Green"]},{"Name":"紅樓夢(mèng)","Color":["Red","Green"]}],"Payer":{"Account":"zhangsan","PayerID":1,"Color":["Red","Green"]},"Province":"北京"},{"Name":"李四","Age":30,"Color":["無(wú)"],"Love":[{"Name":"音樂(lè)","Color":["Red","Green"]},{"Name":"閱讀","Color":["Red","Green"]}],"Property":{"Account":"lisi","OrderID":2},"Cart":[{"Name":"西游記","Color":["Red","Green"]},{"Name":"射雕英雄傳","Color":["Red","Green"]}],"Payer":{"Account":"lisi","OrderID":2,"Color":["Red","Green"]},"Province":"上海"}]

          如感興趣,請(qǐng)關(guān)注“vb6plus”。

          序員的工作和日常生活非常的枯燥,這里給大家推薦一些程序員經(jīng)常使用的網(wǎng)站,也是我經(jīng)常上的一些網(wǎng)站,我將會(huì)從多個(gè)角度、多個(gè)層面分別為你整理歸納這些網(wǎng)站和論壇

          項(xiàng)目類(lèi)

          項(xiàng)目是一個(gè)面試官非??粗氐狞c(diǎn),也是拓展視野、挖掘輪子一個(gè)的地方,下面就為你推薦幾個(gè)程序員都應(yīng)該 mark 的項(xiàng)目類(lèi)網(wǎng)站

          1. Github 代碼托管 https://github.com

          作為開(kāi)源代碼庫(kù)以及版本控制系統(tǒng),Github 擁有140多萬(wàn)開(kāi)發(fā)者用戶(hù)。隨著越來(lái)越多的應(yīng)用程序轉(zhuǎn)移到了云上,Github 已經(jīng)成為了管理軟件開(kāi)發(fā)以及發(fā)現(xiàn)已有代碼的首選方法。代碼托管必備。

          Github 也有非常多好的項(xiàng)目可以推薦,比如我自己的 github (逃了)

          https://github.com/crisxuan/bestJavaer

          還有其他非常多優(yōu)秀的 Github ,比如 CS-notes、JavaGuide、mall 商城項(xiàng)目

          1. 碼云代碼托管平臺(tái) Gitee | Software Development and Collaboration Platform

          碼云托管平臺(tái)是中國(guó)的,之所以國(guó)內(nèi)自己開(kāi)發(fā)了一個(gè)碼云平臺(tái),是因?yàn)?github 涉及到 fq,你懂的,而且碼云是開(kāi)源中國(guó)的托管平臺(tái),會(huì)定期評(píng)選一些優(yōu)秀的項(xiàng)目,你不可錯(cuò)過(guò)!


          1. Gitlab https://about.gitlab.com/

          對(duì)于有些人,提到GitHub就會(huì)自然的想到Gitlab,Gitlab支持無(wú)限的公有項(xiàng)目和私有項(xiàng)目。其首頁(yè)截圖如下


          程序員必須知道的幾個(gè)Git代碼托管平臺(tái)


          1. coding.net https://coding.net

          談到 coding.net,首先必須提的是速度快,功能與開(kāi)源中國(guó)相似,同樣一個(gè)賬號(hào)最多可以創(chuàng)建 1000 個(gè)項(xiàng)目,也支持任務(wù)的創(chuàng)建等

          coding.net

          博客類(lèi)

          1. CSDN https://www.csdn.net/

          中國(guó)專(zhuān)業(yè)IT社區(qū)CSDN (Chinese Software Developer Network) 創(chuàng)立于1999年,致力于為中國(guó)軟件開(kāi)發(fā)者提供知識(shí)傳播、在線學(xué)習(xí)、職業(yè)發(fā)展等服務(wù)。中國(guó)最大、最具專(zhuān)業(yè)的博客平臺(tái),同時(shí)也是質(zhì)量最高的博客平臺(tái)

          1. 博客園 http://www.cnblogs.com

          這樣一個(gè)不起眼的地方,卻吸引了很多IT技術(shù)精英,把這里當(dāng)作自己的網(wǎng)上家園,每天在這里分享著精彩的原創(chuàng)內(nèi)容,也許他們看重的不是華麗的外表、誘人的虛名,而是純凈、專(zhuān)注、對(duì)技術(shù)人員的理解。

          1. 掘金 https://juejin.im/

          掘金現(xiàn)在被字節(jié)跳動(dòng)收購(gòu)了,內(nèi)容審核變得越來(lái)越嚴(yán)格,也涌現(xiàn)了很多大佬,他們寫(xiě)的文章非常幫,強(qiáng)烈推薦大家每天逛一逛,博客內(nèi)容都是經(jīng)過(guò)層層篩選的,非常值得一看

          1. 思否 https://segmentfault.com/

          思否上面有很多大佬,不得不說(shuō)思否的界面做的非常清新,舒服,這就讓人很喜歡這個(gè)博客平臺(tái),目前看來(lái)還是比較小眾,但是上面的開(kāi)發(fā)者的互動(dòng)很多,是一個(gè)很溫馨的地方。s

          1. infoq https://www.infoq.cn/?utm_source=infoq&utm_medium=toutubiaoti

          infoq 是最近興起的一個(gè)技術(shù)社區(qū),界面非常小清新,讓人感覺(jué)很舒服,目前入駐的開(kāi)發(fā)者倒不是很多,但是 infoq 依托極客邦的大流量和資源,做起來(lái)應(yīng)該很快的,我入駐了 infoq ,感覺(jué)里面還是有很多大佬的,推薦大家經(jīng)常瀏覽一波

          1. GitChat https://gitbook.cn

          GitChat 是一個(gè)付費(fèi)學(xué)習(xí)網(wǎng)站,當(dāng)然也支持免費(fèi)模式,因?yàn)楦顿M(fèi)所以相對(duì)文章質(zhì)量比較高,但是免費(fèi)的文章同樣也很不錯(cuò),而且我就在 GitChat 上面寫(xiě)了很多免費(fèi)文章,不應(yīng)該是很多,應(yīng)該是全部免費(fèi),我的 gitchat 主頁(yè)如下 程序員cxuan 的 GitChat

          1. V2EX https://www.v2ex.com

          無(wú)論你是在大學(xué)進(jìn)行人生最重要階段的學(xué)習(xí),或者是在中國(guó)的某座城市工作,或者是在外太空的某個(gè)天體如 Sputnik 1 上享受人生,在注冊(cè)進(jìn)入 V2EX 之后,你都可以為自己設(shè)置一個(gè)所在地,從而找到更多和你在同一區(qū)域的朋友。

          1. OSCHINA https://www.oschina.net

          這個(gè)網(wǎng)站和CSDN一樣是國(guó)內(nèi)最大程序員社區(qū),各種教程、資源、工具、書(shū)籍都是可以找到的。在社區(qū)里,你可以盡情的寫(xiě)博客,發(fā)動(dòng)態(tài),激烈的討論問(wèn)題,只有在這種環(huán)境下才能激起你學(xué)習(xí)的熱情。

          1. 簡(jiǎn)書(shū) https://www.jianshu.com/

          簡(jiǎn)書(shū)是一個(gè)不僅僅為程序員提供的創(chuàng)作分享社區(qū),上面充滿(mǎn)了各種各樣精彩的博文,也有很多優(yōu)秀的博主,但是相比較與CSDN個(gè)人認(rèn)為在技術(shù)創(chuàng)作方面就略低一籌了。

          問(wèn)答類(lèi)

          1. 知乎 https://www.zhihu.com/

          有問(wèn)題,上知乎。知乎,可信賴(lài)的問(wèn)答社區(qū),以讓每個(gè)人高效獲得可信賴(lài)的解答為使命。

          本是一個(gè)分享各種人生雜談,和一些鮮為人知以及各種大牛的免費(fèi)和付費(fèi)的知識(shí)型網(wǎng)站。由于流量逐步擴(kuò)大,吸引了大批優(yōu)秀的程序員在上面分享自己的技術(shù)創(chuàng)作,也是一個(gè)程序員常去的網(wǎng)站之一,不僅僅是為了學(xué)習(xí)技術(shù)。

          1. 思否問(wèn)答 https://segmentfault.com

          SegmentFault 思否是中國(guó)領(lǐng)先的新一代開(kāi)發(fā)者社區(qū)和專(zhuān)業(yè)的技術(shù)媒體。我們?yōu)橹形拈_(kāi)發(fā)者提供純粹、高質(zhì)的技術(shù)交流平臺(tái)以及最前沿的技術(shù)行業(yè)動(dòng)態(tài),幫助更多的開(kāi)發(fā)者獲得認(rèn)知

          教程類(lèi)

          1. 菜鳥(niǎo)教程 https://www.runoob.com

          菜鳥(niǎo)教程提供了編程的基礎(chǔ)技術(shù)教程, 介紹了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各種編程語(yǔ)言的基礎(chǔ)知識(shí),是個(gè)小白入門(mén),學(xué)習(xí)語(yǔ)言的好地方。

          1. w3schoool

          在W3School,你可以找到你所需要的所有的網(wǎng)站建設(shè)教程。從基礎(chǔ)的 HTML 到 CSS,乃至進(jìn)階的 XML、SQL、JS、PHP 和 ASP.NET。從左側(cè)的菜單選擇你需要的教程! 和菜鳥(niǎo)教程十分相似的網(wǎng)站。

          1. 易百教程 https://www.yiibai.com

          易百網(wǎng)是一個(gè)內(nèi)容全面的教程網(wǎng)站,專(zhuān)注于VBScript, MATLAB, EJB, IPv6, IPv4, 電子商務(wù), PostgreSQL, SQLite, SDLC, Assembly, 操作系統(tǒng), JSON, iOS, 設(shè)計(jì)模式, VB.Net, 計(jì)算機(jī)基礎(chǔ)知識(shí)。

          1. Bilibili1 https://www.bilibili.com

          期初這個(gè)網(wǎng)站是由游戲玩家視頻火起來(lái)的,尤其LOL骨灰級(jí)玩家遍布其中。bilibili 是國(guó)內(nèi)知名的視頻彈幕網(wǎng)站,通過(guò)動(dòng)漫打出了名聲,最近兩年發(fā)展勢(shì)頭迅猛,里面有不少有創(chuàng)意的 Up 主,不乏一些有趣的程序員。

          1. 中國(guó)大學(xué)MOOC網(wǎng) icourse163.org

          中國(guó)大學(xué)MOOC(慕課) 是國(guó)內(nèi)優(yōu)質(zhì)的中文MOOC學(xué)習(xí)平臺(tái),由愛(ài)課程網(wǎng)攜手網(wǎng)易云課堂打造。平臺(tái)擁有包括985高校在內(nèi)提供的千余門(mén)課程。在這里,每一個(gè)有意愿提升自己的人都可以免費(fèi)獲得更優(yōu)質(zhì)的高等教育。

          1. 慕課網(wǎng)-程序員的夢(mèng)工廠 https://www.imooc.com

          慕課網(wǎng)(IMOOC)是IT技能學(xué)習(xí)平臺(tái)。慕課網(wǎng)(IMOOC)提供了豐富的移動(dòng)端開(kāi)發(fā)、php開(kāi)發(fā)、web前端、android開(kāi)發(fā)以及html5等視頻教程資源公開(kāi)課。

          1. 網(wǎng)易云課堂 https://study.163.com

          網(wǎng)易云課堂,是網(wǎng)易公司打造的在線實(shí)用技能學(xué)習(xí)平臺(tái),主要為學(xué)習(xí)者提供海量、優(yōu)質(zhì)的課程,用戶(hù)可以根據(jù)自身的學(xué)習(xí)程度,自主安排學(xué)習(xí)進(jìn)度。涵蓋實(shí)用軟件、IT與互聯(lián)網(wǎng)、外語(yǔ)學(xué)習(xí)、生活家居、興趣愛(ài)好、職場(chǎng)技能、金融管理、考試認(rèn)證、中小學(xué)、親子教育等十余大門(mén)類(lèi)。

          1. 實(shí)驗(yàn)樓 https://www.lanqiao.cn/courses

          實(shí)驗(yàn)樓這個(gè)網(wǎng)站我直接吹爆,無(wú)需配置繁瑣的本地環(huán)境,隨時(shí)在線使用。

          算法類(lèi)

          1. LeetCode https://leetcode-cn.com

          幾乎每個(gè)算法大牛都知道的神奇網(wǎng)站,這個(gè)網(wǎng)站上面有:算法、數(shù)據(jù)庫(kù)、Shell、多線程等多種類(lèi)型供你學(xué)習(xí)。多數(shù)人在上面練習(xí)編程算法,尤其是給想進(jìn)入一線互聯(lián)網(wǎng)公司的技術(shù)人員,提供了一個(gè)免費(fèi)又方便的題庫(kù)。面試前都會(huì)在上面進(jìn)行長(zhǎng)期和充分的刷題,是你的不二選擇。

          1. LintCode https://www.lintcode.com

          LintCode領(lǐng)扣上有數(shù)量超過(guò)1000道的算法題目和人工智能題目,通過(guò)刷題熟練掌握數(shù)據(jù)結(jié)構(gòu)和算法。完成各大名企的階梯訓(xùn)練,為你斬獲心儀的offer打下堅(jiān)實(shí)的基礎(chǔ)

          1. 洛谷 https://www.luogu.com.cn

          洛谷創(chuàng)辦于2013年,致力于為參加noip、noi、acm的選手提供清爽、快捷的編程體驗(yàn)。它擁有在線測(cè)題系統(tǒng)、強(qiáng)大的社區(qū)、在線學(xué)習(xí)功能,也是一個(gè)很好練習(xí)刷題的網(wǎng)站啦

          接單類(lèi)

          1. 程序員客棧 https://www.proginn.com

          程序員客棧是領(lǐng)先的程序員自由遠(yuǎn)程工作平臺(tái),未來(lái)互聯(lián)網(wǎng)企業(yè)用人方式。提供優(yōu)秀程序員為您進(jìn)行網(wǎng)站建設(shè)制作、測(cè)試運(yùn)維服務(wù)、人工智能AI、大數(shù)據(jù)區(qū)塊鏈、軟件開(kāi)發(fā)等優(yōu)質(zhì)服務(wù)。

          1. 碼市 https://codemart.com/developers

          碼市是互聯(lián)網(wǎng)軟件外包服務(wù)平臺(tái),意在連接需求方與廣大開(kāi)發(fā)者。讓項(xiàng)目的需求方快速的找到合適的開(kāi)發(fā)者,完成項(xiàng)目開(kāi)發(fā)工作。

          1. 猿急送 https://www.yuanjisong.com/job

          猿急送為您提供兼職程序員,兼職工程師信息,猿急送是一個(gè)高級(jí)技術(shù)共享平臺(tái),是優(yōu)質(zhì)的程序員兼職網(wǎng)站,這里匯聚BAT等知名互聯(lián)網(wǎng)公司的技術(shù)開(kāi)發(fā)、產(chǎn)品、設(shè)計(jì)大牛。

          1. 開(kāi)源眾包 https://zb.oschina.net

          開(kāi)源眾包–專(zhuān)業(yè)的軟件眾包平臺(tái),350萬(wàn)+ 優(yōu)質(zhì)開(kāi)發(fā)者為您提供網(wǎng)站、APP、微信/小程序、企業(yè)應(yīng)用等軟件開(kāi)發(fā)服務(wù),有效降低企業(yè) IT 軟件開(kāi)發(fā)成本、解決技術(shù)資源不足等問(wèn)題。

          1. 實(shí)現(xiàn)網(wǎng) https://shixian.com

          這個(gè)比較高級(jí),是一些知名公司技術(shù)人員兼職的平臺(tái)。我們可以在線約好去其他公司兼職坐班。實(shí)現(xiàn)網(wǎng)為企業(yè)提供BAT等名企背景的、靠譜的開(kāi)發(fā)設(shè)計(jì)兼職人才和自由職業(yè)者,滿(mǎn)足企業(yè)項(xiàng)目外包、駐場(chǎng)開(kāi)發(fā)、遠(yuǎn)程兼職、技術(shù)咨詢(xún)等短期人力需求。

          1. 豬八戒 https://shenyang.zbj.com

          豬八戒網(wǎng)企業(yè)外包服務(wù),中國(guó)領(lǐng)先的靈活用工平臺(tái),其中服務(wù)品類(lèi)涵蓋LOGO設(shè)計(jì)、UI設(shè)計(jì)、營(yíng)銷(xiāo)推廣、網(wǎng)站建設(shè)、裝修設(shè)計(jì)、工業(yè)設(shè)計(jì)、文案策劃、知識(shí)產(chǎn)權(quán)的服務(wù)。

          1. 碼易眾包平臺(tái) https://www.mayigeek.com

          碼易是智網(wǎng)易聯(lián)旗下IT軟件服務(wù)平臺(tái),集軟件商城、企業(yè)應(yīng)用、電商軟件、crm軟件、商務(wù)服務(wù)平臺(tái)于一體的一站式軟件外包開(kāi)發(fā)服務(wù)平臺(tái)。

          求職類(lèi)

          1. ??途W(wǎng) https://www.nowcoder.com

          求職之前,先上??停蜆I(yè)找工作一站解決。這個(gè)網(wǎng)站不像csdn和OSChina以技術(shù)博客論壇為主了。但是在你需要的時(shí)候,卻是相當(dāng)有價(jià)值,里面有面試技巧、各種知名的不知名的互聯(lián)網(wǎng)公司的對(duì)應(yīng)往年校招社招面試題庫(kù),刷到你手軟,一般應(yīng)屆生用這個(gè)比較多。

          1. 拉勾網(wǎng) https://www.lagou.com

          拉勾招聘是專(zhuān)業(yè)的互聯(lián)網(wǎng)求職招聘網(wǎng)站。致力于提供真實(shí)可靠的互聯(lián)網(wǎng)崗位求職招聘找工作信息,擁有海量的互聯(lián)網(wǎng)人才儲(chǔ)備,互聯(lián)網(wǎng)行業(yè)找工作就上拉勾招聘,值得信賴(lài)的求職。

          1. Boss直聘 https://www.zhipin.com

          BOSS直聘是權(quán)威領(lǐng)先的招聘網(wǎng),開(kāi)啟人才網(wǎng)招聘求職新時(shí)代,讓求職者與Boss直接開(kāi)聊、加快面試、即時(shí)反饋,是一個(gè)致力于為招聘者和求職者搭建高效溝通、信息對(duì)等的平臺(tái)

          1. 獵聘 https://www.liepin.com

          獵聘,2018年香港上市。作為中國(guó)知名中高端人才求職招聘平臺(tái),匯聚56萬(wàn)+知名企業(yè)、16萬(wàn)+認(rèn)證獵頭,為5700萬(wàn)用戶(hù)提供高薪工作崗位??傊?,獵聘還是非常不錯(cuò)的。

          希望能對(duì)大家有所幫助呀。

          、前言

          繼微軟拋棄IE瀏覽器全面擁抱Chromium內(nèi)核推出Edge瀏覽器后,一直在關(guān)注那老舊的webbrowser未來(lái)如何發(fā)展。雖然編程語(yǔ)言千千萬(wàn),也有人不看好winform編程,但在當(dāng)前windows依舊占據(jù)相當(dāng)?shù)氖袌?chǎng)份額。在webbrowser中官方支持的是IE內(nèi)核,而IE內(nèi)核又跟你的電腦的安裝版本有關(guān)系,再加上IE對(duì)各種html前端支持的不友好。vuejs都已經(jīng)徹底拋棄了IE瀏覽器,遲遲不敢在生產(chǎn)環(huán)境大量應(yīng)用vueweb應(yīng)用。(有人可能會(huì)說(shuō)可以換webkit或者cesharp內(nèi)核,筆者也嘗試過(guò),但畢竟不是微軟的親生,各種不友好,各種復(fù)雜,webkit都多久沒(méi)更新了,根據(jù)歷史經(jīng)驗(yàn)過(guò)于復(fù)雜的東西一般很難長(zhǎng)久)。
          之前關(guān)注過(guò)webview2,但那段時(shí)間剛出支持也不是很友好,無(wú)法很有效繼承,有說(shuō)要安裝edge瀏覽器的,又說(shuō)要安裝別的,而win7可能又不支持等等,而恰好我們的場(chǎng)景用又存在大量的win7,只能暫時(shí)放棄。
          最近要應(yīng)用Vue,重新關(guān)注了一下相關(guān)應(yīng)用,很驚喜的發(fā)現(xiàn),webview2有了官方比較好的支持(可能早就有了,但是肯定不會(huì)超過(guò)1年)微軟官方文檔鏈接WebView2 - Microsoft Edge Developer

          如果本文有不對(duì)的地方還要以官方文檔為準(zhǔn),研究不深。先說(shuō)體驗(yàn)效果,webview2真的很好,內(nèi)核徹底替換為chromium,Vue項(xiàng)目跑起來(lái)了也不用擔(dān)心各種不兼容了,終于不用為webbrowser擔(dān)憂了。由于項(xiàng)目使用的VB.NET(不要問(wèn)為甚么不是C#,我會(huì)一點(diǎn),但是用不到),因此考慮到系統(tǒng)中的使用還是集成到了VB.NET中,在搜索過(guò)程中發(fā)現(xiàn)webview2的資料不多,一些屬性還沒(méi)有很好的案例,可能與winform的沒(méi)落有關(guān)系吧,而且相關(guān)介紹均是C#的,也包括官方文檔。因此在基本集成以后,通過(guò)這篇文章做簡(jiǎn)單分享與記錄。這里的集成比較簡(jiǎn)單,主要是滿(mǎn)足WEB和客戶(hù)端的混合編程,也是webview2介紹中的重要應(yīng)用之一,畢竟WEB才是管理系統(tǒng)的未來(lái)。

          二、Webview2 簡(jiǎn)單介紹

          Webview2 加了個(gè)2可能是為了跟安卓的webview區(qū)分吧,畢竟一搜webview出來(lái)的全是安卓的。

          Webview2支持win7、win8、win10以及對(duì)應(yīng)的server版本,可以說(shuō)是涵蓋了windows的江山,具體的版本說(shuō)明可以參考官方文檔。如果你說(shuō)還有xp,天就被聊死了,我們不是一路人。

          從搜到的帖子看大家對(duì)于webview2還是持肯定態(tài)度的,比webkit,cefsharp的兼容性要好的多,從我的體驗(yàn)來(lái)講它可以完全替代webbrowser控件,正在生產(chǎn)環(huán)境中替代原有webbrowser控件。

          三、環(huán)境配置

          Webview2雖然沒(méi)有了IE一堆亂糟糟的版本問(wèn)題,但是Webview2畢竟是依賴(lài)與Edge誕生的產(chǎn)品,它依然需要一定的環(huán)境,微軟提供了2種方案。

          • Webview2 runtime 運(yùn)行時(shí)環(huán)境,分為x86,x64,arm版本,按照對(duì)應(yīng)版本下載即可,通過(guò)實(shí)測(cè)在64位安裝x86版本也可以使用,但還是建議按照對(duì)應(yīng)版本安裝。在前面給到的微軟官方鏈接可以安裝
          • Microsoft Edge 預(yù)覽體驗(yàn)成員(預(yù)覽版) 注意不是我們附帶的發(fā)布版的edge,是單獨(dú)的預(yù)覽版,有3款可以選擇,官方建議candy版天天更新。

          這里選擇的是Webview2 runtime畢竟我們是集成環(huán)境,這里可以根據(jù)需要選擇。

          • 開(kāi)發(fā)工具要求VS2017以上,案例使用的vs2017
          • .net版本 有說(shuō)要4.6.2以上的,官方文檔選的4.7.2。案例實(shí)測(cè)4.5.2中可用。

          四、進(jìn)入正題

          官方文檔是C#的比較簡(jiǎn)單,C#er們自行閱覽即可,畢竟在大神面前我只是個(gè)渣渣。

          1、引入Webview2

          • "解決方案資源管理器"中,右擊項(xiàng)目名稱(chēng),然后選擇"管理 NuGet 包
          • 在搜索欄中,鍵入并單擊"Microsoft.Web.WebView2"。WebView2

          • 工具箱中就有了webview2控件了,拖拽即可,不過(guò)多解釋

          2、關(guān)鍵方法、事件

          • 導(dǎo)航方法(鏈接跳轉(zhuǎn))
          WebView21.CoreWebView2.Navigate(im_ipurl)
          • 自動(dòng)檢測(cè)安裝Webview2 runtime(放在WebView21_CoreWebView2InitializationCompleted事件中)
              Function installruntime()
                  Try
                      Dim v As String = WebView21.Source.ToString
                      Me.Text = ("Copyright ? 2021-2022 lxfamn, All Rights Reserved " )
                  Catch ex As Exception
                      If Environment.Is64BitOperatingSystem Then
                          MsgBox("系統(tǒng)全面升級(jí)瀏覽器內(nèi)核,接下來(lái)系統(tǒng)將自動(dòng)為您安裝補(bǔ)丁,請(qǐng)?jiān)趶棾龃翱谶x運(yùn)行,64位系統(tǒng)")
                          Process.Start("\\運(yùn)行組件共享路徑\webruntime\X64.exe")
                      Else
                          MsgBox("系統(tǒng)全面升級(jí)瀏覽器內(nèi)核,接下來(lái)系統(tǒng)將自動(dòng)為您安裝補(bǔ)丁,請(qǐng)?jiān)趶棾龃翱谶x運(yùn)行,32位系統(tǒng)")
                          Process.Start("\\運(yùn)行組件共享路徑\webruntime\X64.exe")
                      End If
          
                  End Try
              End Function
             Private Sub WebView21_CoreWebView2InitializationCompleted(sender As Object, e As CoreWebView2InitializationCompletedEventArgs) Handles WebView21.CoreWebView2InitializationCompleted
                  installruntime()
                  WebView21.CoreWebView2.Navigate(im_ipurl & "/home")
          
              End Sub
          • NavigationCompleted 相當(dāng)于webbrowser documnentcomplete事件

          事件執(zhí)行流程如下圖所示:

          3、最關(guān)鍵、復(fù)雜的流程

          webview與主機(jī)程序的交互過(guò)程,在原有的webbrowser中在WebBrowser1_DocumentCompleted事件中通過(guò)對(duì)WebBrowser1.DocumentText的解析可以做進(jìn)行不同的處理。

          • CoreWebView2 是webview2下的一個(gè)核心方法,感覺(jué)像是內(nèi)核中的一些方法

          在webview2中沒(méi)有了上述事件和方法,取而代之的是postMessage,官方案例使用的C#,使用了aysn異步綁定等方式。

          簡(jiǎn)單可以理解為,提供了WebView21.CoreWebView2.ExecuteScriptAsyncWebView21.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync方法,向站點(diǎn)注入javasript程序來(lái)實(shí)現(xiàn)相關(guān)功能,這里我只使用了ExecuteScriptAsync方法,在NavigationCompleted事件,在頁(yè)面加載完成后向主機(jī)發(fā)送消息,WebView21_WebMessageReceived 事件中接受發(fā)送的消息。

            Private Sub WebView21_NavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs) Handles WebView21.NavigationCompleted
                  TextBox1.Text = WebView21.Source.ToString()'導(dǎo)航完成后,在標(biāo)題欄中顯示當(dāng)前網(wǎng)址
                  If (TextBox1.Text.Contains("www.microsoft.com")) Then
                      WebView21.CoreWebView2.Navigate("https://blog.lxfamn.cn/?cat=101")
                  End If
                  WebView21.CoreWebView2.ExecuteScriptAsync("window.chrome.webview.postMessage(document.body.innerHTML);")
              End Sub
              Private Sub WebView21_WebMessageReceived(sender As Object, e As CoreWebView2WebMessageReceivedEventArgs) Handles WebView21.WebMessageReceived
                  webdeal(e.WebMessageAsJson.ToString)'根據(jù)接收的消息進(jìn)行邏輯處理
              End Sub

          4、其他的一些

          建議結(jié)合官方文檔進(jìn)行閱覽,理解一些方法和規(guī)則,一些方法和過(guò)程在官方文檔中解釋還是比較清楚的,本文主要是幫助解釋一些在vb.net以及一些邏輯等問(wèn)題的解釋。

          附上一些處理url自動(dòng)補(bǔ)充前綴的方法

           Function geturl(dealway As String)
                  Try
                      Dim urlstr As String = TextBox1.Text
                      If Not urlstr.Contains("http") Then
                          Dim re As New Regex("((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}")
                          Dim Contents As MatchCollection = re.Matches(urlstr)
                          Dim rea As New Regex("[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?")
                          Dim Contentsa As MatchCollection = rea.Matches(urlstr)
                          If Contentsa.Count > 0 Or Contents.Count > 0 Then
          
                              urlstr = "http://" & urlstr
                          Else
                              If dealway = "百度" Then
                                  urlstr = "https://www.baidu.com/s?wd=" & urlstr
                              End If
                              If dealway = "blog" Then
                                  urlstr = "https://blog.lxfamn.cn/?cat=101"
          
                              End If
                          
                          End If
                      End If
                      WebView21.CoreWebView2.Navigate((urlstr))
                  Catch
                      installruntime()
                  End Try
              End Function

          界面布局

          有問(wèn)題之處歡迎指正

          個(gè)人博客:VB.NET Edge webview2 引入-IT涉獵者

          未經(jīng)允許不得轉(zhuǎn)載:https://blog.lxfamn.cn/?p=6698


          主站蜘蛛池模板: 麻豆果冻传媒2021精品传媒一区下载| 精品人妻一区二区三区四区 | 福利视频一区二区牛牛| 日本一区二区在线| 久久久久国产一区二区| 国产福利在线观看一区二区| 亚洲一区电影在线观看| 国产午夜精品一区二区三区| 午夜无码一区二区三区在线观看| 亚洲综合激情五月色一区| 无码精品人妻一区二区三区中 | 亚洲一区二区三区高清不卡| 国产精品日本一区二区在线播放 | eeuss鲁片一区二区三区| 无码人妻精品一区二区三区东京热| 亚洲一区二区精品视频| 视频一区二区在线播放| 国产成人一区二区精品非洲| 亚洲av无码成人影院一区| 国产成人精品日本亚洲专一区| 麻豆aⅴ精品无码一区二区| 色婷婷综合久久久久中文一区二区 | 精品亚洲AV无码一区二区三区| 精品一区二区三区在线成人| 一区二区三区国产精品 | 一区二区三区美女视频| 福利一区二区在线| 亚洲国模精品一区| 中文字幕一区二区区免| 国产一区二区三区在线视頻| 国产亚洲一区区二区在线| 亚洲日本va一区二区三区| 熟妇人妻AV无码一区二区三区| 亚洲一区免费观看| 国产精品视频分类一区| 日韩美女在线观看一区| 国产精品毛片一区二区| 风间由美性色一区二区三区 | 精品一区二区三区AV天堂| 成人免费视频一区二区| 久久久久久一区国产精品|