1. 程式人生 > >Cordova整合筆記(for iOS)

Cordova整合筆記(for iOS)

Crodova使用總結
1.Mac機上Cordova環境配置
2.在已有iOS專案中整合Cordova
3.在Cordova中建立外掛,實現h5與原生互動(以自己公司網頁為例)

Mac機上Cordova環境配置

這部分網上有很多,但我寫這篇初衷是個人筆記,所以再簡單說一下

  1. 安裝cordova需要先安裝node.js。
  2. 如果你沒有安裝git client,需要下載並安裝一個git客戶端
  3. 使用node.js的依賴包管理工具npm來進行cordova安裝。
    開啟終端輸入如下命令:
    sudo npm install -g cordova

在iOS專案中整合Cordova

  1. 直接新建一個Cordova專案

開啟終端輸入如下命令,該命令可能需要一些時間來完成:
cordova create hello com.example.hello HelloWorld

Parameter Description Notes
hello引數是必填 將為你的專案生成一個hello目錄 www子目錄是應用程式的主頁,以及各種資源(css,js,img),遵循共同的web開發檔案命名規範。這些資源將儲存在裝置上的本地檔案系統,而不是遠端服務。config.xml檔案包含重要的需要生成和分發應用程式的元資料。
com.example.hello 引數可選 App ID 如果不填寫這個引數,第三個引數就要省略,預設值是 io.cordova.hellocordova,但建議你填寫一個適當的值。
HelloWorld引數可選 應用程式的專案名 這個引數的預設值是 HelloCordova,但建議你填寫一個適當的值。
[–template templatePath] 引數可選,一般不填寫 使用模板建立一個專案 所有檔案和資料夾的模板將被複制到新的專案。平臺和外掛可能包含在一個模板。這個引數是可選的。模板的路徑可以是一個本地路徑,NPM模組或Git URL

2. 在已有專案中新增Cordova

在Cordova中建立外掛,實現h5與原生互動(以自己公司網頁為例)

先給大家看下我的專案目錄
這裡寫圖片描述
index.html部分內容

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="cordova_plugins.js"></script>
        <script type="text/javascript">
            document.addEventListener("deviceready", yourCallbackFunction, false);
            function buttonClick(){
                Cordova.exec(successFunction, failFunction, "YourPluginName", "myMethod", ["回撥方法"]);
            }
            function successFunction(){
                alert("successFunction");
            }
            function failFunction(){
                alert("failFunction");
            }
        </script>
    </head>
    <body>
        <p>ExampleObject</p>
        <button onclick="buttonClick()">自定義外掛</button>
    </body>
</html>

上面的html內有一個自定義外掛按鈕,當點選按鈕是,網頁會發送一個事件
Cordova.exec(successFunction, failFunction, “YourPluginName”, “myMethod”, [“回撥方法”]);。

引數 說明
successFunction 成功後的回撥
failFunction 成功後的回撥
YourPluginName(LogoutAndExit) 下方自定義的外掛名稱
myMethod(action_logout_exit) 與OC該外掛類中的方法名保持一致
parameter 回撥傳遞的引數

1. 在Plugins下建立OC外掛類,這裡以我們專案中的退出登入的事件為例,建立了一個CDVLogout類
CDVLogout類,類定義一個方法,此方法的方法名要與html中此按鈕的點選事件下定義的方法名保持一致
方法內部就可以寫你收到html的點選通知以後想要在原生上做的事情

#import <Foundation/Foundation.h>
//#import <Cordova/Cordova.h>
#import <Cordova/CDVPlugin.h>

@interface CDVLogout : CDVPlugin

-(void)action_logout_exit:(CDVInvokedUrlCommand*)command;;

@end
  1. 在config.xml檔案中加入外掛引用
<feature name="LogoutAndExit">
        <param name="ios-package" value="CDVLogout" />
        <param name="onload" value="true" />
    </feature>

LogoutAndExit: html中定義的外掛名稱
CDVLogout: OC原生外掛類

OK,至此該有的配置和程式碼都有了,應該就能測試了,因為程式碼裡面涉及公司資訊,所以不貼程式碼了

  1. 在cordova_plugins.js中引入自定義外掛
cordova.define('cordova/plugin_list', function(require, exports, module) {
    module.exports = [
      /*file:js檔案路徑
       id:對應某外掛中的某個具體功能
       clobbers:js通過它去呼叫js外掛中具體的方法
       */
      {
          "file": "plugins/org.apache.cordova.logoutandexit/www/LogoutAndExit.js",
          "id": "org.apache.cordova.logoutandexit.LogoutAndExit",
          "clobbers": [
                       "window.logoutandexit"
                       ]
      },
   ];
    module.exports.metadata =
    // TOP OF METADATA
    {
        "cordova-plugin-whitelist": "1.3.1",
        "org.apache.cordova.logoutandexit": "0.1.0",
    };
    // BOTTOM OF METADATA
});

其他:

  1. 常見Cordova終端命令

使用命令列工具,執行App的命令是:
cordova run

例如,我想在瀏覽器中執行 App,我就在終端裡輸入:
cordova run browser
然後,就會開啟瀏覽器,就會執行App。

當然,如果我們想要在iOS 上執行 App,我們也可以輸入:
cordova run ios
也可以到指定目錄下開啟iOS 工程檔案

檢視更多的關於執行App 的命令,可以輸入 cordova help run。