Cordova – 建立開發環境

什麼樣的開發環境?

因為是 Cordova 所以 Android 可以忽略 Android Studio IDE 以及 AVD ,因為要直接連手機測試

但是 IOS 就沒有省略 Xcode 的方式,因為 Mac 的硬體效能較佳,不像 PC 的差異

安裝、設定

步驟

  1. 建立 c:\bin\android 目錄,此目錄就是後續所有 Android 編譯所需用到程式存放位置
  2. 下載 25.2.3 Android SDK,下載最新版 (26.1.1) 不適用因為沒有圖形介面,後續操作不易
  3. 將 tools_r253.2.3-windows.zip 解壓縮到 c:\bin\android
  4. 設定環境變數 PATH
    1. 建立 ANDROID_HOME 變數路徑到 c:\bin\android
    2. 增加 tools 目錄到 PATH
    3. 增加 tools\bin 目錄到 PATH
  5. 打開命令提示字元運行 >android sdk 安裝
    1. Android SDK Tools
    2. Android SDK Platform-tools
    3. Android SDK Build-tools
    4. Google USB Driver
  6. 下載 gradle Gradle | Releases
  7. 解壓縮 gradle-4.9-bin.zip 到 ANDROID_HOME 並改名為 gradle
  8. 增加 gradle\bin 目錄到 PATH

安裝 Cordova 以及實機測試

將手機切換到開發者模式之後,開啟 USB 偵錯,連上電腦後就可以開始安裝 Cordova 以及測試了

 

479 total views, no views today

Cordova – 設定 config.xml

設定你的 APP 專案

你可以設定

  • 專案 id, 名稱、敘述、版本號
  • 作者
  • 首頁檔名
  • 是否全螢幕
  • 是否固定方向
  • 是否關閉彈性捲動
  • icon
  • 其他 plugin 所需要設定值,例如 Google + OAuth 登入

首頁檔名

控制螢幕方向

  • default : 預設值,根據裝置
  • portrait : 固定為直向
  • landscape : 固定為橫向

全螢幕

關閉彈性捲動

一個範例

454 total views, no views today

Facebook OAuth v3.1 臉書登入 – 使用 PHP SDK

流程

  1. 下載 PHP SDK php-graph-sdk (v5)
  2. 將下載的 php-graph-sdk-5.x.zip 檔內的 src\Facebook 解壓縮到網站內
  3. 準備兩個網站路徑:登入、OAuth
  4. https://developers.facebook.com/apps 選擇臉書登入 app
    1. 設定 → 進階:升級 API 版本到 v3.1

    2. 產品 → 設定:將預計的 OAuth 路徑填入 有效的 OAuth 重新導向 URI
  5. 準備產生臉書登入連結及處理 OAuth 資訊到取得臉書個人資料 id, name, email

PHP  – 產生 OAuth 登入連結

 

如此即會產生如以下這樣的連結

 

OAuth 登入處理 (https://member.hoyo.idv.tw/Facebook.php&b=OAuth)

這裡只列出 Facebook OAuth class 的程式碼,前面還有一個 index.php 處理網站入口,例如後面說的 session 錯誤就是寫在 index.php 內

$UserInfo 如此即可得到該登入使用者在 Facebook 的基本資料 id, name, email

無法載入網址: 這個網址的網域未包含在應用程式的網域中。若要載入這個網址,請在應用程式設定的「應用程式網域」欄位中新增應用程式的所有的網域及子網域。

請使用 Facebook 提供 SDK ,注意流程即可避免此問題

Facebook SDK returned an error: Cross-site request forgery validation failed. Required param “state” missing from persistent data.

PHP 必須開啟 session_start();

Graph returned an error: This authorization code has been used.

為什麼 Facebook 使用 PHP 不是使用 Javascript ?

因為 Facebook 的 js 寫的很爛只能跑在「較新版」的 Chrome 例如 v62 ,而 Google 可以跑在 Chrome v44 所以使用 PHP 沒有 js 相容性問題

2,119 total views, no views today

Let’s Encrypt – *.hoyo.idv.tw 通配網域證書

參考

取得 certbot-auto 及執行

執行,記得產生一個通配網域一個只有網域名稱證書,如此單獨使用網域名稱時才不會 SSL_ERROR_BAD_CERT_DOMAIN 證書問題

編輯 DNS

重新啟動 DNS

驗證

Enter 繼續執行,沒問題出現以下畫面就代表證書建立完成

Online dig

自動更新證書

-目前手動更新中-

Bind 9 動態 DNS

 

其他注意事項

  • 失敗的指令也會算在 Rate Limits
  • SSL_ERROR_BAD_CERT_DOMAIN : hoyo.idv.tw 等於 *.hoyo.idv.tw ,必須使用 hoyo.idv.tw 證書或是將 hoyo.idv.tw 轉到 www.hoyo.idv.tw 才能套用通配網域證書

167 total views, no views today