제목:

코르도바의 config.xml 기본설정

날짜: Posted on

이 포스트에서는 코르도바의 config.xml 파일에 대한 간단한 설명을 서술합니다.

아파치 코르도바 프로젝트를 생성하면 4개의 하위 디렉터리(hooks, platform, plugins, www)와 함께 config.xml이라는 파일이 하나 생깁니다. 이 파일은 코르도바 하이브리드 앱에 관한 설정을 담고 있는 XML 형식의 파일입니다.

config.xml 파일은 기본적으로 다음과 같이 생성됩니다.

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.hellocordova" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>HelloCordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="dev@cordova.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <plugin name="cordova-plugin-whitelist" spec="1" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
</widget>

1번째 줄은 XML 파일임을 알리기 위한 헤더입니다.

2번째 줄부터 시작합니다. 최상위 요소인 <widget> 안에 앱에 관한 설정사항이 들어갑니다. 여기에는 내부 속성으로 id, version, xmlns, xmlns:cdv 이렇게 4가지 속성이 있습니다. id는 앱의 식별자이고, version은 앱의 버전입니다. 이 두 가지는 앱의 설정에 따라 알맞게 주시면 됩니다. 그리고 xmlns와 xmlns:cdv는 XML 네임스페이스 설정을 위한 속성으로 이 두 개의 값은 그대로 두는 것이 좋습니다.
또한, 내보낼 기기의 설정에 따라 추가적인 속성값을 쓸 수도 있습니다.
* 앱 식별자는 com.xxx.xxx 식으로 쓰여 앱을 식별하는 데 쓰이는 코드입니다. 예를 들어 안드로이드용 구글 크롬은 “com.android.chrome”입니다.

3번 줄의 <name>은 앱의 이름을 지정하기 위한 요소, 4번 줄의 <description>은 앱의 설명을 서술하기 위한 요소입니다.

7번 줄의 <author>는 앱 개발자에 관한 사항을 서술하기 위한 요소입니다. 내부 텍스트 값은 앱 개발자의 이름, email 속성값은 앱 개발자의 메일 주소, href 속성값은 앱 개발자의 홈페이지입니다. 이 두 속성값은 필수입니다.

10번 줄의 <content>는 앱을 시동할 때 처음으로 열리게 될 HTML 페이지를 src 속성값으로 지정합니다.

11번 줄의 <plugin>은 내장할 플러그인을 지정하는 요소입니다. name은 플러그인의 이름, spec은 플러그인의 버전을 지정합니다. 기본적으로 화이트리스트 플러그인이 포함됩니다.

12번 줄의 <access>는 화이트리스트 플러그인을 위한 요소로, 데이터의 요청을 허용할 URL을 origin 속성값으로 지정합니다. 기본값처럼 origin="*"로 지정되어 있으면 모든 URL의 데이터의 요청을 허용하게 됩니다. 만약 <access origin="http://*.google.com" /> 식으로 쓰면 구글의 서브 도메인에 있는 데이터에 한해서만 요청이 가능해지게 됩니다.

13번 줄의 <allow-intent> 마찬가지로 화이트리스트 플러그인을 위한 요소로, 새로운 창에서 여는 것을 허용할 URL을 href 속성값으로 지정합니다. 기본값에서는 위와 같이 http, https, tel, sms, mailto, geo 도메인에 대해 허용이 되어 있습니다. 여기서는 나와 있지 않지만 <allow-navigation>도 있는데 이는 해당 웹뷰에서 여는 것을 허용할 URL을 href 속성값으로 지정합니다.

19번 줄과 22번 줄을 보면 <platform> 요소가 있고 name 속성값으로 android와 ios가 있습니다. 또 그 안에는 <allow-intent> 요소가 들어 있습니다. android 쪽에는 <allow-intent>의 href 속성값으로 ‘market:*’가 있고 ios 쪽에는 href 속성값으로 ‘itms:*’와 ‘itms-apps:*’가 있습니다. 이는 안드로이드에 대해서는 market 프로토콜의 URL을 새로운 창으로 여는 것을 허용하고 iOS에 대해서는 itms와 itms-apps 프로토콜의 URL을 새로운 창으로 여는 것을 허용하는 의미입니다.

그 외에도 플랫폼의 버전 설정을 하는 <engine>이나 각종 설정을 넣는 <preference> 등 여러가지 요소를 넣을 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다