2018年11月19日 星期一

在手機上開啟本地的 html 跟 svg 檔

Android 作業系統的自由度遠遠不及 GNU/Linux。 例如瀏覽器的功能明明就可以開啟 html 檔或 svg 檔, 但若這個檔案在本地而不在雲端, android 手機就是不提供 「以瀏覽器開啟」 的選項。 我覺得這是 google 的陰謀 -- 就像 chrome 的禁讀令 一樣, 它希望你把一切都移到雲端去, 或是一定要逼你打開一個特定的 app, 總之就是不讓你很方便地用通用的瀏覽器做事。 不管是不是陰謀, 總之這個沒有意義的限制其實是可以繞過去的: Svg 圖檔 (含 sozi 簡報) 及 html (在某些情況下, 甚至包括內含 javascript 的 webapps) 也都可以透過 「open in browser」 這個 app 搭配適當的瀏覽器來開啟。

一開始我是為了開 .svg 檔而搜尋到 SVG redirect。 安裝之後, 每當你從檔案總管理點選一個 .svg 檔時, 就會在 「open with」 的選單當中出現 「svg redirect」 的選項。 如果你的手機裡安裝了不只一個瀏覽器, 點它之後, 又會出現另一層的選單, 讓你選擇要用哪一個瀏覽器開啟這個 svg 檔。 我試過的幾個 (來自 f-droid 的) browsers 當中, 成功的包含: LightningmBrowserLucid Browser ; 失敗的包含: JumpGoFirefox Klar 、 cyanogenmod 內建的 「Browser」。

novnc 架構 但是後來發現另一個相同觀念、 效果更強的好物: Open in browser。 當你在檔案總管理點選 html 或 svg 或 mp4 時, 它都會是開啟的選項之一。 只是, 在 「open with ...」 的選單裡, 它的名字叫做 (很不起眼的) 「browser」。 點它之後, 一樣會再出現另一層選單, 問你要用哪一個瀏覽器開啟這個本地檔案。 同樣地, Lightning、 mBrowser、 Lucid Browser 再次地成功開啟。 如果是 mp4, JumpGo 也可以播放。

而且還順便發現: chrome 的禁讀令 那一篇裡所提到的 tc-streets.tgz 這個範例, 竟然可以透過這種方式在 mBrowser 上成功開啟! 至於 sozi 簡報, 就跟一般的 svg 檔一樣, mBrowser、 Lightning、 Lucid Browser 都成功地開啟。 開心! 手機上總算還找得到自由的瀏覽器。 你還試了其他哪些瀏覽器呢? 請留言分享成功失敗的經驗吧。

html svg mp4 html w/ js
mBrowser v v v v
Lightning v v v
Lucid Browser v v v
JumpGo v

3 則留言:

  1. 不知道 apache (或其他 web server) 有沒有辦法裝在 android 上。webdav server 是可以裝我試過所以我相信 web server 應該也可以。

    之前我在讀 local html 的時候就被貴哥這篇遇到的問題卡住,我當初的解法是把 html 轉成 .epub 然後用 ebook reader 開。我當時就在想以後如果有必要,一定直接找一個 android 版的 web server 裝上去,一勞永役解決這些鳥問題。不過最近還沒有這個需求,用不到,沒有研究。

    回覆刪除
    回覆
    1. 或許簡單的apache server可以用termux 來開啟

      刪除
  2. 找到這兩個: https://f-droid.org/en/packages/net.basov.lws.fdroid/ 跟 https://f-droid.org/en/packages/com.MarcosDiez.shareviahttp/ 不過它們的主要功能都是把檔案分享給身旁的人, 比較不適合拿來自己閱讀私密檔案。

    回覆刪除

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。