[Android] 如何讓 WebView 處理 url 參數 target="_blank" 使用外部瀏覽器開啟

當我們瀏覽器點擊帶有參數 target="_blank" 的 url 時,代表預期該網頁要在新的視窗被開啟。如果是在 Android 的 WebView 中,我們該如何做到只針對指定開啟新視窗的 url link 呼叫外部瀏覽器呢?
請參考以下做法
繼續閱讀

如何讓 Git 使用 Dropbox 作為遠端 server 協同開發

可能很多像我一樣認真的工程師,想要自己在家中自己硬幹或是與幾個碼農一同開發專案,這時候你應該需要像是 Git 這麼強大的版本控管工具。Github 提供了 Server 及許多好用的功能,當然服務不完全是免費的,免費使用者必須公開專案的程式碼,如果你也正巧和我一樣既不想花錢又不想被別人看光光,可以考慮使用 Dropbox 作為遠端 server。廢話說了很多,下面手把手教學開始

繼續閱讀

[Android] 如何解決鎖定螢幕方向時,動畫旋轉錯誤的問題

當我們在程式中需要鎖住當下進入畫面時的方向,會用到 Activity.setRequestedOrientation(int requestedOrientation),例如下面範例

// 當下裝置 sensor 偵測到的方位角度
final int rotation = getWindowManager().getDefaultDisplay().getRotation();
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
    // 鎖定橫向方向
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
    // 鎖定直立方向
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

但是這樣似乎不夠美好, 因為你的 PM 或 QA 很快就會來跟你 demo 進入畫面倒過來旋轉的神奇動畫,這是因為 SCREEN_ORIENTATION_LANDSCAPE 與 SCREEN_ORIENTATION_PORTRAIT 是正向 (0°/ 90°) 時的橫豎方位,當下裝置若為反向 (180°/ 270°) 時,自然會看到動畫是倒過來旋轉,這時你可以跟他們謊稱這是正常行為參考以下的做法

繼續閱讀