6

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.hloadRequest(). のヘッダー エントリloadRequest()は次のとおりです。

- (void)loadRequest:(GADRequest *)request withAdUnitID:(NSString *)adUnitID;

これとの唯一の顕著な違いは、名前付きパラメーターを使用していることです。この種の方法で特別なことはありますか?何か間違ったことをしているのですか、それともハイパーループはまだそのような機能をサポートしていませんか?

4

1 に答える 1