Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. Cordova 플러그인 개발 준비 - [플러그인 개발 가이드](https://cordova.apache.org/docs/ko/latest/guide/hybrid/plugins/) - 한글이지만 기계 번역으로 되어 있어 보기 어렵다. - [Android Plugin Development Guide](http://cordova.apache.org/docs/en/latest/guide/platforms/android/plugin.html) - [Add External Jar Library to Build Cordova Plugin (Ionic Framework)](http://stackoverflow.com/questions/34115571/add-external-jar-library-to-build-cordova-plugin-ionic-framework) - stackoverflow에서의 질문 [app]/platforms/android/res/xml/config.xml에서 feature 태그를 확인할 수 있다. ```xml <feature name="AdMob"> <param name="android-package" value="com.rjfun.cordova.admob.AdMobPlugin" /> <param name="onload" value="true" /> </feature> <feature name="Device"> <param name="android-package" value="org.apache.cordova.device.Device" /> </feature> <feature name="InAppBrowser"> <param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" /> </feature> <feature name="SplashScreen"> <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" /> <param name="onload" value="true" /> </feature> <feature name="StatusBar"> <param name="android-package" value="org.apache.cordova.statusbar.StatusBar" /> <param name="onload" value="true" /> </feature> <feature name="VideoPlayerPlugin"> <param name="android-package" value="jp.phi.cordova.plugin.videoplayer.VideoPlayerPlugin" /> </feature> <feature name="Whitelist"> <param name="android-package" value="org.apache.cordova.whitelist.WhitelistPlugin" /> <param name="onload" value="true" /> </feature> <feature name="Keyboard"> <param name="android-package" value="io.ionic.keyboard.IonicKeyboard" /> <param name="onload" value="true" /> </feature> ``` 각각의 소스는 [app]/plugins 밑에서 확인 할 수 있다. cordova-plugin-admobpro 플러그인으로 사용중인 AdMob.createBanner(bannerId) 함수를 예로 들어 따라가 본다. AdMob은 plugins/cordova-plugin-admobpro/plugin.xml js-module로 정의되어 있다. ```xml <js-module src="www/AdMob.js" name="AdMob"> <clobbers target="window.AdMob" /> </js-module> ``` src 로 되어 있는 "www/AdMob.js"를 따라가 본다. 이곳에 createBanner 함수가 있다. ```js admobExport.createBanner = function(args, successCallback, failureCallback) { var options = {}; if(typeof args === 'object') { for(var k in args) { if(k === 'success') { if(typeof args[k] === 'function') successCallback = args[k]; } else if(k === 'error') { if(typeof args[k] === 'function') failureCallback = args[k]; } else { options[k] = args[k]; } } } else if(typeof args === 'string') { options = { adId: args }; } cordova.exec( successCallback, failureCallback, 'AdMob', 'createBanner', [ options ] ); }; ``` createBanner 에서 bannerId 하나만 파라미터로 전달된다. exec 함수에 대한 정의는 [이곳](http://cordova.apache.org/docs/en/latest/guide/platforms/android/plugin.html#plugin-class-mapping)에서 확인할 수 있다. ```java exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]); ``` service 는 'AdMob'이고, action 은 'createBanner' 이다. 바라보고 있는 AdMobPlugin 클래스는 GenericAdPlugin 클래스를 상속받은 것이다. GenericAdPlugin 클래스는 [app]/plugins/cordova-plugin-extension/src/android/cordova-generic-ad.jar 에 있다. http://www.javadecompilers.com/ 에서 해당 jar 파일을 올리고 jadx decompiler로 선택하면 GenericAdPlugin.java 파일을 확인 할 수 있다. 이 곳에서 createBanner 함수를 확인할 수 있다. ```java public boolean createBanner(String adId, boolean autoShow) { if (!this.adlicInited) { adlic(); } Log.d(LOGTAG, "createBanner: " + adId + ", " + autoShow); this.autoShowBanner = autoShow; if (adId == null || adId.length() <= 0) { adId = this.bannerId; } else { this.bannerId = adId; } if (this.testTraffic) { if (this.adlicBannerId.length() > 0) { adId = this.adlicBannerId; } else { adId = __getTestBannerId(); } } getActivity().runOnUiThread(new C00023(adId)); return true; } ``` open/cordova-플러그인-개발.txt Last modified: 2024/10/05 06:15by 127.0.0.1