본문 바로가기
ETC./기타

기타) Cordova Swift PlugIn 추가

by 후르륵짭짭 2021. 10. 24.
728x90
반응형

 

** Cordova 시작하기 **

 - 프로젝트 생성 -

cordova create hello com.example.hello HelloWorld

cordova create <파일명> <번들ID> <프로젝트이름>

 

 - 플랫폼 추가 -

cd hello
cd <프로젝트명>

cordova platform add ios
cordova platform add <플랫폼추가>

 

** Cordova 이해하기 **

platform add ios를 하면 www파일 , plugins파일의 내용들이 복사되어 platforms에 들어가게 된다.

그리고 이렇게 ios - <프로젝트명>에 IOS에 필요한 파일들이 들어가 있고

ios - www에는 web에 사용되는 정보들이 들어가 있다.

 

** Cordova Swift plugin 추가 **

plugman create --name addNumberSwift --plugin_id com.helloCordova.plugins.addNumberSwift --plugin_version 0.0.1

cd com.helloCordova.plugins.addNumberSwift

plugman platform add --platform_name ios

=> name 과 plugin_id가 동일하면 안된다.

 

<?xml version='1.0' encoding='utf-8'?>
<plugin id="com.helloCordova.plugins.addNumberSwift" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
    <name>com.helloCordova.plugins.addNumberSwift</name>
    <js-module name="com.helloCordova.plugins.addNumberSwift" src="www/com.helloCordova.plugins.addNumberSwift.js">
        <clobbers target="cordova.plugins.com.helloCordova.plugins.addNumberSwift" />
    </js-module>
    <platform name="ios">
        <config-file parent="/*" target="config.xml">
            <feature name="com.helloCordova.plugins.addNumberSwift">
                <param name="ios-package" value="com.helloCordova.plugins.addNumberSwift" />
            </feature>
        </config-file>
        <source-file src="src/ios/com.helloCordova.plugins.addNumberSwift.m" />
    </platform>
</plugin>

=> 수정

<?xml version='1.0' encoding='utf-8'?>
<plugin id="com.helloCordova.plugins.addNumberSwift" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
    <name>com.helloCordova.plugins.addNumberSwift</name>
    <js-module name="com.helloCordova.plugins.addNumberSwift" src="www/addNumberSwift.js">
        <clobbers target="addNumberSwift" />
    </js-module>
    <platform name="ios">
        <config-file parent="/*" target="config.xml">
            <feature name="com.helloCordova.plugins.addNumberSwift">
                <param name="ios-package" value="com.helloCordova.plugins.addNumberSwift" />
            </feature>
        </config-file>
        <source-file src="src/ios/addNumberSwift.swift" />
    </platform>
</plugin>

 

cd cordova2/hello/com.helloCordova.plugins.addNumberSwift/src/ios

touch addNumberSwift.swift

 

www -> addNumberSwift.js

=> 수정

var exec = require('cordova/exec');

exports.addNumber = function (arg0, success, error) {
    exec(success, error, 'com.helloCordova.plugins.addNumberSwift', 'addNumber', [arg0]);
};

 

해당 plugin 폴더 안에서 

npm init을 통해 package.json 파일 생성

{
  "name": "com.hellocordova.plugins.addnumberswift",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

 

Swift 플러그인 추가 플러그인

cordova plugin add cordova-plugin-add-swift-support --save

 

플러그인 추가 플러그인

cordova plugin add <플러그인 Path>

 

728x90
반응형

댓글