ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CLI 없이 Xcode Workspace에 Cordova Custom Plugin 추가하기
    iOS 2023. 6. 23. 10:16

     

    보통은 아래와 같은 방법으로 커스텀 플러그인을 추가합니다. 하지만 여의치 않은 경우(Cordova-based project가 없거나 플러그인을 배포하지 않은 상황) Command Line Interface 없이 Xcode Workspace에 파일 복사 및 추가 코드를 작성함으로써 플러그인을 포함해야 할 때도 있습니다.

     

    $ cordova plugin add 커스텀 플러그인 이름
    
    $ cordova plugin add URL
    
    $ cordova plugin add ../path/to/my/plugin/relative/to/project --link

     


    config.xml

    <!-- 플러그인 이름 -->
    <feature name="CustomPlugin">
        <!-- 클래스 이름 -->
        <param name="ios-package" value="CDVCustomPlugin">
    </feature>

     


    cordova_plugins.js

    ...
        // plugin.xml 내용 적용
        {
            "id": "cordova-plugin-custom.CustomPlugin",
            "file": "plugins/cordova-plugin-custom/www/custom.js",
            "pluginId": "cordova-plugin-custom",
            "clobbers": [
              "custom" // js에서 사용할 앨리어스
            ]
        }
    ];
    
    // 버전 설정
    module.exports.metadata = {
        "cordova-plugin-custom": "0.0.1"
    };

     

     


     

    www/js/plugins/cordova-plugin-custom/www/custom.js

    cordova.define("cordova-plugin-custom.CustomPlugin", function(require, exports, module) {
      var exec = require('cordova/exec');
    
      exports.customMethod-1-js = function(successCallback, failureCallback, param1, param2, param3, param4) {
          exec(successCallback, failureCallback, "CustomPlugin", "customMethod-1-swift", [param1, param2, param3, param4]);
      };
    
      exports.customMethod-2-js = function(successCallback, failureCallback) {
          exec(successCallback, failureCallback, "CustomPlugin", "customMethod-2-swift", []);
      };
    });

    또는

    cordova.define("cordova-plugin-custom.CustomPlugin", function(require, exports, module) {
        var CustomPlugin = function() {};
        
        CustomPlugin.customMethod-1-js = function(successCallback, failureCallback, param1, param2, param3, param4) {
            cordova.exec(successCallback, failureCallback, "CustomPlugin", "customMethod-1-swift", [param1, param2, param3, param4]);
        };
        
        CustomPlugin.customMethod-2-js = function(successCallback, failureCallback) {
            cordova.exec(successCallback, failureCallback, "CustomPlugin", "customMethod-2-swift", []);
        };
        
        module.exports = CustomPlugin;
    });

     


    Note that

    iOS Project/Plugins 그룹에 커스텀 플러그인 소스코드 복사

     

    Bridging-Header는 컴파일 타임에 Swift 기반의 코드에서 Objective-C 코드를 참조하고 사용할 수 있게 해주기 때문에, Swift 코드와 함께 사용할 Objective-C 코드가 있다면 Bridging-Header.h에 포함

     

    사용할 리소스는 Resources 그룹 아래에 복사

    댓글

Designed by Tistory.