私は DrupalGap を実験していますが、すでに箱から出して提供しているものは素晴らしいです。モジュールが不足している機能の1つは、アプリ内購入(Apple経由で支払いが行われる)です。
Cordovaは、優れたドキュメントを備えた優れたクロスプラットフォームプラグインを提供します。
document.addEventListener('deviceready', initializeStore, false);
function initializeStore() {
// Let's set a pretty high verbosity level, so that we see a lot of stuff
// in the console (reassuring us that something is happening).
store.verbosity = store.INFO;
// We register a dummy product. It's ok, it shouldn't
// prevent the store "ready" event from firing.
store.register({
id: "com.example.app.inappid1",
alias: "100 coins",
type: store.CONSUMABLE
});
// When every goes as expected, it's time to celebrate!
// The "ready" event should be welcomed with music and fireworks,
// go ask your boss about it! (just in case)
store.ready(function() {
console.log("\\o/ STORE READY \\o/");
});
// After we've done our setup, we tell the store to do
// it's first refresh. Nothing will happen if we do not call store.refresh()
store.refresh();
}
どのようにdocument.EventlistenerとDrupalGap内の初期化関数を追加できますか?
Cordovaプラグインがインストールされ、製品がiTunesでセットアップされ、アプリ内購入機能を備えたプロビジョニングプロファイルが作成されます。ユーザーがアプリ内購入を行えるDrupalGapにメニューリンクを含むカスタムモジュールを作成しました。
UPDATE:
このコードは機能し(Thanks、Tyler)、iTunesConnectストアに接続して、要求された/登録された製品をプルします。
サンドボックスユーザーが製品をプルする必要はありません。
開発プロビジョニングプロファイルのみを使用する場合でも、Apple 3つの法的文書を提出する必要があります。ドキュメントが提出されるまで数時間かかります。
ここに別の便利なリンクがあります(製品が無効な場合): http://troybrant.net/blog/2010/01/invalid-product-ids/
/**
* Implements hook_deviceready().
*/
function my_module_deviceready() {
// Let's set a pretty high verbosity level, so that we see a lot of stuff in the console (reassuring us that something is happening).
//store.verbosity = store.INFO;
store.verbosity = store.DEBUG; // even higher
// We register/request a product:
store.register({
id: "130points", // this is id of your product in iTunesConnect
alias: "130points_alias",
type: store.CONSUMABLE
});
// When every goes as expected, it's time to celebrate!
// The "ready" event should be welcomed with music and fireworks,
// go ask your boss about it! (just in case)
store.ready(function() {
console.log("\\o/ STORE READY \\o/");
});
// When any product gets updated, refresh the HTML.
store.when("product").updated(function (product_item) {
console.log("product_item: " + JSON.stringify(product_item)); // this is the response from iTunesConnect
});
// After we've done our setup, we tell the store to do it's first refresh. Nothing will happen if we do not call
store.refresh();
return true; // Let DrupalGap know it is OK to continue.
}
DrupalGapカスタムモジュール では、 hook_deviceready() を使用します。
/**
* Implements hook_deviceready().
*/
function my_module_deviceready() {
// Place your initializeStore function's code here...
return true; // Let DrupalGap know it is OK to continue.
}