顯示具有 ios 標籤的文章。 顯示所有文章
顯示具有 ios 標籤的文章。 顯示所有文章

2022-04-06

Safari 繁簡轉換 Extension

最近研究了一下如何開發 Safari Extension,順便實作了 Safari 的繁簡轉換外掛(MacOS/iOS 通用),並上架到 App Store。

下載位置:https://apps.apple.com/us/app/繁簡通/id1616740784

因為開發者帳號一年要三千四,所以就定價 33 塊錢,看能不能把帳號費賺回來。如果賺不回來,明年可能就不再花錢上架了,哈。不過程式碼也是 Opensource ,有需要的也可以自己 build。

原始碼:https://github.com/scott0228/ZHTranslate

目前是上架 SwiftOpenCC 的 branch

2022-01-26

Mobile Safari 簡繁轉換

iOS 15 後,Safari 支援 Extension,而最近發現 Userscripts 支援 iOS 的 safari,立馬裝來試試。

之前同文堂有提供繁簡轉換的 js ,但是對於動態的內容不會自動即時轉換,因此我就調整了一下,針對動態插入畫面的內容也進行轉換。

主要是加上:document.addEventListener("DOMNodeInserted", convert_trad, true); 來處理動態內容。  

設定後,就不用再去看殘體字了,這個 script 沒有對用詞進行轉換,不過對我來說已經夠用了。

 Userscripts 可以使用 icloud 當放 js 的目錄,因此可以利用 icloud 來同步電腦上的 script。

2022/02/11 Update 

優化動態內容轉換處理方式,改用 MutationObserver 來處理,避免造成 Google docs 操作異常。


2020-03-29

利用免費資源 Oracle Cloud / AdGuard Home / Surge 在手機上擋廣告



最近看到 AdGuard Home 可以架 DNS Server 來擋廣告,又發現 Surge 可以改 iOS 行動網路連線的 DNS,因此想到利用 Oracle Cloud 的免費 vpc 來搭建相關服務來擋手機上的廣告。




環境準備: 

Oracle Cloud

我是採用 ubuntu 的 image, 建立完用,可以利用 ubuntu 帳號 ssh 登入去操作。



AdGuard Home

可參考『是時候裝一套 AdGuard Home 全局擋廣告神器了!』 進行設定
我的設定檔如下: 

Surge

  1. 設定 DNS ,指到 ubuntu 的 ip
  2. 啟動 Surge

設定完的成果

 

 

 

 

 

 

 

 

各國的 IP CIDR 格式可以參考:
https://github.com/herrbischoff/country-ip-blocks

2014-03-18

iOS 7.1 無法利用 http 佈署企業 app

目前開發企業內部使用之 app ,iOS 7 之前,用企業 provision 可以將程式打包成 ipa 檔,利用 itms-services:// 開頭的網址搭配一個描述檔 (plist) 來安裝 ipa 檔,如
itms-services://?action=download-manifest&url=http://www.test.com/app.plist

可是到了 iOS 7.1 之後,就會發生:無法安裝應用程式,因為「www.test.com」的憑證無效。

上網查了一下,才發現原來 iOS 7.1 之後 plist 檔一定要在認可的 https 協定下載,目前可行的方法有:

  1. 為網站購買 SSL 憑證,改走 https 的方式進行安裝
  2. 使用 openssl 自簽憑證,iDevice 上要先匯入自簽根憑證才可使用
  3. 將 plist 檔放在別人提供的 https 空間(如 dropbox),再利用此種模式下載安裝
第一種方式就不用講了,第二種方式的處理方式如下:
  1. 產生自簽根金鑰
    openssl genrsa -out myCA.key 2048
  2. 產生自簽根憑證
    openssl req -x509 -new -key myCA.key -out myCA.cer -days 3650 -subj /CN="小虫CA"
  3. 產生網站金鑰
    openssl genrsa -out mycert1.key 2048
  4. 產生 CSR
    openssl req -new -out mycert1.req -key mycert1.key -subj /CN=www.test.com
  5. 利用自簽根金鑰
    openssl x509 -req -in mycert1.req -out mycert1.cer -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial
  6. 網站使用 mycert1.key 及 mycert1.cer 來加密,iDevice 先匯入 myCA.cer 即可利用 https 連線到網站上了
  7. 再利用以下網址即可進行網路安裝 ipa
    itms-services://?action=download-manifest&url=https://www.test.com/app.plist
第三種方式,可以將 plist 放置 Dropbox 上,步驟如下:
  1. 將 plist 檔放置 dropbox 下
  2. 取得 plist 檔的分享路徑,如
    https://www.dropbox.com/s/jwwu4p1kctqenva/app.plist
  3. 將 www.dropbox.com 改為 dl.dropboxusercontent.com,如
    https://dl.dropboxusercontent.com/s/jwwu4p1kctqenva/app.plist
  4. 將 app 安裝的網址改為使用第三點的 link 即可,如:
    itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/jwwu4p1kctqenva/app.plist

2012-03-03

iPhone 如何利用 socks proxy 上網(不需 jailbreak)

iPhone iPad 本身上網的設定並沒有可以利用 socks proxy 的方式,所以我們可以利用自動組態檔的方式來處理,方法如下:
  1. 在電腦(如 192.168.11.1)建立一個 socks proxy ,如利用 ssh:
    ssh -N -g -D 1080 某主機ip
  2. 在一台 web server 上放置一各自動組態檔,內容如下:
    function FindProxyForURL(url, host) {
      return "SOCKS
    192.168.11.1:1080";
    }
    紅字的部份是對應 proxy 主機的 ip
  3. 在 iphone 上使用此自動組態檔即可,如:
    http://192.168.11.1/mysupersecretproxy.pac




參考:
http://snipplr.com/view/16563/how-to-connect-to-a-socks-proxy-from-an-unjailbroken-iphoneipod-touch/
http://thireus.dareyourmind.net/index.php/thireus-home-news/8-general-announcement/112-pac--ssh-tunneling--iphone--success-
http://thireus.dareyourmind.net/index.php/iphone-hacks/115-how-to-get-socks-proxy-ssh-tunneling-to-work-on-a-jailbroken-iphoneipod-touchipad