ti.admob ( https://github.com/appcelerator-modules/ti.admob ) がリワード広告をサポートしていないようなので、appcelerator プロジェクトで Google-Mobile-Ads-SDK を使用しようとしています。そこで、最上位のプロジェクト ディレクトリに Podfile を作成しました。
install! 'cocoapods',
:integrate_targets => false
platform :ios, '7.0'
target 'my app' do
use_frameworks!
pod 'Google-Mobile-Ads-SDK', '7.15'
end
(ポッドの最新バージョンを使用できませんでした。Xcode は型宣言の問題を解決しました。これは問題なくコンパイルされました。)
次に、次のようにライブラリを使用しました。
var GADRequest = require('GoogleMobileAds/GADRequest');
var GADRewardBasedVideoAd = require('GoogleMobileAds/GADRewardBasedVideoAd');
var instance = GADRewardBasedVideoAd.sharedInstance();
if (!instance.isReady()) {
var request = new GADRequest();
instance.loadRequest(request, Alloy.CFG.rewardedadid);
}
そして、コードはエラーで失敗しました:
TypeError: undefined is not a function
(evaluating 'instance.loadRequest(request, Alloy.CFG.rewardedadid)')
で生成された対応する .js ファイルを見ると、./build/hyperloop/ios/js/googlemobileads/gadrewardbasedvideoad.js
インスタンス メソッドとプロパティの関数シグネチャがGADRewardBasedVideoAd.h
、loadRequest()
. のヘッダー エントリloadRequest()
は次のとおりです。
- (void)loadRequest:(GADRequest *)request withAdUnitID:(NSString *)adUnitID;
これとの唯一の顕著な違いは、名前付きパラメーターを使用していることです。この種の方法で特別なことはありますか?何か間違ったことをしているのですか、それともハイパーループはまだそのような機能をサポートしていませんか?