我的瀏覽器 - 可個性化的自定義瀏覽器

識別圖中二維碼下載安裝

背后的歷史故事

說起我的瀏覽器崎弃,那是2015年春天剛過完沒多久,正值5月底疾瓮,依稀還記得那時我是住在民生路的羽北小區(qū)脖镀,因?yàn)槟菚r剛搬去新房子不久,剛在淘寶上買的墻紙與壁畫貼上不久狼电,一個人在一個還算蠻溫馨房間里蜒灰,帶著欣慰的心情獨(dú)自坐一臺山寨的iMac前,思索著接下來打算做點(diǎn)什么肩碟。

01在羽北小區(qū).JPG

記得當(dāng)時到公司有大半年了强窖,做的不是瀏覽器項(xiàng)目,后來有l(wèi)eader說后期會讓我做瀏覽器削祈,所以當(dāng)時就開始研究起了瀏覽器翅溺。做瀏覽器,當(dāng)時有兩種核心組件可并行的用,市面上主流的都是基于UIWebView未巫,因?yàn)榭由倭耍渤墒煊昧撕芏嗄炅恕2糠譃g覽器從iOS8開始采用WKWebView核心叙凡,因?yàn)橛肳KWebView核心加載網(wǎng)頁比UIWebView核心快太多劈伴。但WKWebView當(dāng)時作為一個新事物坑還是比較多的。

2014年10月那次蘋果推出了iOS8握爷,對我來說iOS8有兩個非常重要的新東西跛璧,一個是WKWebView,一個是Keyboard Extension新啼∽烦牵可幸的是我都接觸了,而且應(yīng)用它們都做了優(yōu)秀的App燥撞,而我的瀏覽器就主要基于這個WKWebView構(gòu)建的座柱。

我的瀏覽器前期也兼容了兩種核心,其實(shí)當(dāng)時我并沒有想要自己做一款瀏覽器的想法物舒,只是為以研究做瀏覽器色洞,比較好做法是自己寫一個實(shí)現(xiàn)一遍。心想雖然這樣會比較累冠胯,但這樣對我來說成效是最大的火诸。因?yàn)楫?dāng)前公司的瀏覽器項(xiàng)目確實(shí)有點(diǎn)臃腫,依賴于之上的業(yè)務(wù)也多荠察。所以懷著對自己的信任园细,為了技術(shù)熱情與理想割以,重新架構(gòu)設(shè)計墩崩,從零開始重新寫一個輕量的Demo瀏覽器典唇。

當(dāng)時重新寫時,首先就用UIWebView做了一遍焕盟,順便熟悉了WebViewJavascriptBridge的用法廷雅,發(fā)現(xiàn)沒有想象的那么困難,因?yàn)槟茉赨IWebView上可做的事情挺多的京髓,都還挺順暢的,也不麻煩商架,很快就實(shí)現(xiàn)了一個基于UIWebView的瀏覽器堰怨,主要是支持多窗口,有歷史與書簽管理蛇摸。

后來參考了github諸多案例后备图,就想做一個既兼容UIWebView又兼容WKWebView的WebView組件,最后實(shí)現(xiàn)下來,發(fā)現(xiàn)總還是免不了邏輯和代碼變得更復(fù)雜了揽涮,變得更加難以維護(hù)抠藕,問題復(fù)雜化了,后面不斷的功能變更與版本迭代時問題太多蒋困,得不嘗失盾似。做一個同時兼容UIWebView和WKWebView的XXWebView組件不合理,成本太高雪标,現(xiàn)在我github的MyBrowser的master分支上還保留著零院,只是沒維護(hù)了。

不知道什么時候村刨,可能是熟悉WKWebView后告抄,了解他更多的特性與優(yōu)點(diǎn)后,就比較排斥再用UIWebView了嵌牺。所以就想著把之前做的半拉子的Demo瀏覽器進(jìn)一步優(yōu)化完善打洼,直至后來新開git分支完全用WKWebView實(shí)現(xiàn),把與UIWebView相關(guān)代碼與邏輯都刪除了逆粹。終于解脫了募疮,至少我自己有一個App不用再在為了UIWebView與WKWebView之間的兼容性來回折騰了。

最后再解釋一下這個瀏覽器為什么叫『我的瀏覽器』枯饿,因?yàn)楫?dāng)時我做它的時候酝锅,想到的只是給自己做的用的,一時沒想到特別好的名字奢方,就叫了這個名字搔扁,以突顯這是我的瀏覽器,我的個性化瀏覽器蟋字,那時多少有一點(diǎn)裝B的意思稿蹲。

好了,廢話已經(jīng)寫了很多了鹊奖,下面具體介紹我的瀏覽器吧苛聘。

先上幾張瀏覽器的效果圖:

02首頁.PNG
03窗口頁.PNG
04更多設(shè)置頁.PNG

基本功能介紹

我的瀏覽器的特點(diǎn)是極簡、極輕忠聚、可自定義设哗。功能多又能體積小,一個重要原因是基本上不添加第3方庫两蟀,所有的功能模塊基本都用系統(tǒng)原生支持的或是自己親手編寫實(shí)現(xiàn)网梢。所以安裝包在5M以內(nèi),即便是3x(3x圖大)屏幕的設(shè)備安裝包也在8M左右赂毯。

自動全屏

自動全屏功能讓我們在看瀏覽內(nèi)容時能更加全神貫注于內(nèi)容本身战虏;我的瀏覽器在向上滑動內(nèi)容時會自動隱藏頂部導(dǎo)航條與底部工具欄拣宰,從而為主體內(nèi)容預(yù)留出更多展現(xiàn)空間。

05自動全屏.gif

夜間模式 & 無圖模式

開啟夜間模式可有效降低屏幕亮度保護(hù)我們的眼睛烦感;

06夜間模式.gif

無圖模式可以屏蔽掉網(wǎng)頁中的圖片巡社;

07無圖模式.gif

廣告攔截

廣告攔截讓網(wǎng)頁更干凈;頁面加載更加迅速手趣;

08無廣告攔截.PNG
09有廣告攔截.PNG

多窗口晌该、書簽管理

多窗口、書簽管理回懦、歷史記錄气笙、清除痕跡作為一款瀏覽器必有的功能,所以我的瀏覽器也必須加上了怯晕。

10多窗口.PNG
11書簽管理.PNG
12歷史記錄.PNG

掃描二維碼

每想到Safari沒有掃描二維碼的功能潜圃,就感覺這是一個極大的缺陷,瀏覽器沒有掃描二維碼太不方便了舟茶。

13掃描二維碼.PNG

網(wǎng)頁截圖

用我的瀏覽器打開網(wǎng)頁后谭期,雙指長按頁面可以對打開的網(wǎng)頁進(jìn)行選取區(qū)域截圖,并可以進(jìn)行分享保存吧凉。

13網(wǎng)頁截圖.gif

網(wǎng)頁導(dǎo)出成PDF

有時候我們想在手機(jī)保存我們?yōu)g覽的網(wǎng)頁隧出,并且適配手機(jī)屏幕,還是一件挺麻煩的事情阀捅,而我的瀏覽器就可以輕松的把瀏覽過的網(wǎng)頁導(dǎo)出成pdf文件胀瞪。

14導(dǎo)出pdf.gif

高級功能介紹

高級功能對于專業(yè)的朋友來說,可做的事情就有很多了饲鄙,可以更大程度上玩轉(zhuǎn)我的瀏覽器凄诞。

強(qiáng)大的ShareExtension

我的瀏覽器的ShareExtension之強(qiáng)大,不但可以將其他App的網(wǎng)址鏈接用我的瀏覽器打開忍级,還支持其他任何格式文件導(dǎo)入到我的瀏覽器帆谍,使用我的瀏覽器打開。

15選擇導(dǎo)入到我的瀏覽器.PNG
16開啟我的瀏覽器ShareExtension.PNG
17導(dǎo)入到我的瀏覽器.PNG

比如可以導(dǎo)入音視頻文件放到內(nèi)置的站點(diǎn)上轴咱,實(shí)現(xiàn)手機(jī)上在線播放或分享文件給局域網(wǎng)內(nèi)的好友汛蝙。

18導(dǎo)入視頻.gif

又比如可以把微信或QQ收到的word、excel朴肺、ppt窖剑、key或pdf等文件用其他應(yīng)用程序打開,選擇我的瀏覽器導(dǎo)入戈稿,放到內(nèi)置的站點(diǎn)上供自己或局域網(wǎng)內(nèi)的好友在線瀏覽下載苛吱。

19打開word及pdf.gif

自定義首頁配置

我的瀏覽器的配置文件都在web容器的Config目錄下,用戶可以修改HomeContent.json文件內(nèi)容來自定義瀏覽器首頁器瘪。打開我的瀏覽器翠储,點(diǎn)擊默認(rèn)首頁上的『Web Server』,即可打開Web容器的主目錄,主目錄下默認(rèn)有一個Config文件夾橡疼。

首頁的展示的數(shù)據(jù)來源于HomeContent.json援所,每一項(xiàng)UI對應(yīng)于HomeContent.json的數(shù)據(jù)項(xiàng),類型支持4種欣除,分別為:TextIcon住拭,Text,Search历帚,WebServer滔岳。

通過Web DAV或者Web Uploader上傳自定義的HomeContent.json文件替換掉Config目錄中老的Homecontent.json文件即可自定義瀏覽器首頁。(注意這里要確保json文件格式正確哦)

20Config目錄首頁配置文件.PNG
21HomeConfig配置文件.png

自定義廣告攔截的規(guī)則

我們可以在web容器的Config目錄下修改AdblockRules.txt文件內(nèi)容來添加或修改廣告攔截的規(guī)則挽牢,修改規(guī)則后重啟瀏覽器即可馬上生效谱煤;建意攔截規(guī)則不要添加太多,超過3萬條就會影響網(wǎng)頁的加載速度或部分網(wǎng)頁的會被誤攔截禽拔。

完整版的EasyList中國區(qū)規(guī)則列表 https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt

撰寫 Adblock Plus 過濾規(guī)則,可參考:https://adblockplus.org/filters

內(nèi)置靜態(tài)WebServer

默認(rèn)的首頁有個打開WebServer的入口刘离,那個『Web Server』鏈接項(xiàng)就是了。內(nèi)置靜態(tài)的WebServer,支持在手機(jī)上搭建簡單的靜態(tài)web站點(diǎn)睹栖。我們可向Web容器上傳或?qū)胛募蛭募A硫惕。

22打開WebServer分享目錄.PNG
23打開WebServer.PNG

內(nèi)置的Web Uploader

內(nèi)置的Web Uploader 可以直接在瀏覽器里管理Web容器里的文件,包括上傳文件到Web容器野来,或移動恼除、刪除或新建文件夾等操作。

使用Web Uploader曼氛,我們可以在手機(jī)上添加豁辉、移動、刪除及重名命文件夾搪锣,也可以上傳秋忙、移動、刪除及重命名文件构舟。

24WebUploader.gif

內(nèi)置Web DAV

想必用過FTP的朋友應(yīng)該也聽說過Web DAV灰追,與FTP的功能類似。通過Web DAV狗超,可以更方便快捷實(shí)現(xiàn)從電腦上傳或下載文件到web容器弹澎。我的瀏覽器的WebDAV啟動后,默認(rèn)端口是8081努咐。

Windows上WebDAV客戶端可以使用NetDrive苦蒿、AnyClient,Mac上可以使用Transmit渗稍。下面來一張在Mac上使用Transmit 通過 WebDAV 連接到手機(jī)上的『我的瀏覽器』的Web容器目錄的操作演示佩迟。

25WebDAV.gif

關(guān)注微信

weichat_qrcode.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末团滥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子报强,更是在濱河造成了極大的恐慌灸姊,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秉溉,死亡現(xiàn)場離奇詭異力惯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)召嘶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門父晶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弄跌,你說我怎么就攤上這事甲喝。” “怎么了碟绑?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵俺猿,是天一觀的道長。 經(jīng)常有香客問我格仲,道長押袍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任凯肋,我火速辦了婚禮谊惭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘侮东。我一直安慰自己圈盔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布悄雅。 她就那樣靜靜地躺著驱敲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宽闲。 梳的紋絲不亂的頭發(fā)上众眨,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機(jī)與錄音容诬,去河邊找鬼娩梨。 笑死,一個胖子當(dāng)著我的面吹牛览徒,可吹牛的內(nèi)容都是我干的狈定。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼习蓬,長吁一口氣:“原來是場噩夢啊……” “哼纽什!你這毒婦竟也來了措嵌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤芦缰,失蹤者是張志新(化名)和其女友劉穎铅匹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饺藤,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年流礁,在試婚紗的時候發(fā)現(xiàn)自己被綠了涕俗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡神帅,死狀恐怖再姑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情找御,我是刑警寧澤元镀,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站霎桅,受9級特大地震影響栖疑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜滔驶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一遇革、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧揭糕,春花似錦萝快、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吏口,卻和暖如春奄容,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锨侯。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工嫩海, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人囚痴。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓叁怪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親深滚。 傳聞我的和親對象是個殘疾皇子奕谭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 通過學(xué)習(xí)涣觉,你將會學(xué)習(xí)以下幾個方面的內(nèi)容: **什么是WKWebView以及它和UIWebView的區(qū)別是什么 **...
    SOI閱讀 11,634評論 18 42
  • 前言 關(guān)于UIWebView的介紹,相信看過上文的小伙伴們血柳,已經(jīng)大概清楚了吧官册,如果有問題,歡迎提問难捌。 本文是本系列...
    CoderLF閱讀 8,968評論 2 12
  • 20171101可怕的勤奮 我們在日常生活中處理一件事的時候膝宁,我們的行為是受觀點(diǎn)來影響的,同樣的事實(shí)可能會有不同的...
    怡然思語閱讀 184評論 3 2
  • 脫不花要去生二胎了根吁,這還真是想不到员淫!她臨走前提出的所有的業(yè)績都不要再和獎金掛鉤,這還真是想不到击敌! 雖然我只是一個普...
    池恩琛閱讀 77評論 0 0
  • 日線和月線都已經(jīng)走出了趨勢
    蘇黎世_七夜閱讀 117評論 1 1