PhoneGapの機能を拡張するにあたり,
PhoneGapプラグインのアップデート
旧バージョン向けに作成されたPhoneGapプラグインは,
PhoneGapはAdobeの買収やApacheへの寄贈,
今回は,
プラグインのアップデート手順 (iOS)
基本的にCordova Plugin Upgrade Guideに記載されているとおりの手順でアップグレード可能です。JavaScriptのcordova.
iOS向けPhoneGapプラグインのアップデート手順は次のとおりです。
- PhoneGap 1.
5.0以前向けに作成されたプラグインを, 1. 5.0に対応 - PhoneGap 1.
5.0向けに作成されたプラグインを, 1. 6.x~1. 9.0に対応 - PhoneGap 1.
6.x~1. 9.0向けに作成されたプラグインを, 2. 0.0に対応 - PhoneGap 2.
0.0向けに作成されたプラグインを, 2. 1.0に対応
PhoneGap 1. 5.0以前向けに作成されたプラグインを, 1. 5.0に対応
プラグイン中のJavaScriptファイル,
ファイルの種類 | 修正内容 |
---|---|
JavaScript | 文字列 |
ヘッダファイル |
文字列 |
ヘッダファイル | 文字列 |
ヘッダファイル | クラス接頭辞 |
ヘッダファイル | 文字列 |
JavaScriptにおいて,
// 修正前
PhoneGap.exec(...);
PhoneGap.addConstructor(function(){
PhoneGap.addPlugin(...);
});
// 修正後
Cordova.exec(...);
Cordova.addConstructor(function(){
Cordova.addPlugin(...);
});
Objective-Cコードにおいても同様,
// 修正前
#ifdef PHONEGAP_FRAMEWORK
#import <PhoneGap/PGPlugin.h>
[ super appViewController ] ... ]
// 修正後
#ifdef CORDOVA_FRAMEWORK
#import <Cordova/CDVlugin.h>
[self appViewController ... ]
PhoneGap 1. 5.0向けに作成されたプラグインを, 1. 6.x~1. 9.0に対応
プラグイン中のJavaScriptファイルを修正します。
ファイルの種類 | 修正内容 |
---|---|
JavaScript | 文字列 |
JavaScript中のグローバルCordovaオブジェクト名は,
// 修正前
Cordova.exec(...);
Cordova.addConstructor(function(){
Cordova.addPlugin(...);
});
// 修正後
cordova.exec(...);
cordova.addConstructor(function(){
cordova.addPlugin(...);
});
PhoneGap 1. 6.x~1. 9.0向けに作成されたプラグインを, 2. 0.0に対応
プラグイン中のJavaScriptファイル,
ファイルの種類 | 修正内容 |
---|---|
JavaScript | cordova. |
ヘッダファイル | #import文の確認 |
ヘッダファイル | verifyArgumentsメソッド, appViewControllerメソッドが使用されている箇所を, |
PhoneGap 2.
cordova.
// 修正前
cordova.addConstructor(function() {
cordova.addPlugin('MyPlugin', new MyPlugin());
});
// 修正後
if(!window.plugins)
{
window.plugins = {};
}
if (!window.plugins.MyPlugin)
{
window.plugins.MyPlugin = new MyPlugin();
}
また,
// 修正前
#import <Cordova/CDV.h>
// 修正後
#import "CDV.h"
PhoneGap 2.
PhoneGap 2. 0.0向けに作成されたプラグインを, 2. 1.0に対応
ファイルの種類 | 修正内容 |
---|---|
ヘッダファイル | 文字列 |
JSONKitと外部ライブラリとの名前空間の問題
// 修正前
[myDict cdvjk_JSONString];
// 修正後
[myDict JSONString];
PhoneGap 2.
// 修正前
- (void) myMethod:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
// 修正後
- (void) myMethod:(CDVInvokedUrlCommand*)command;