WebViewでAdMobアドインをトリガで実行しようとしていますが、そのメソッドにアクセスできません。メソッドを静的にするよう依頼していますが、そうすると変数にアクセスすることができません。displayAd()メソッドはどのように呼び出すことができますか?
MainActivity.java
public class MainActivity extends AppCompatActivity {
private InterstitialAd mInterstitialAd;
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_MainActivity);
MobileAds.initialize(this, "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX");
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX");
mInterstitialAd.loadAd(new AdRequest.Builder().build());
mWebView = (WebView) findViewById(R.id.MainActivity);
mWebView.addJavascriptInterface(new WebAppInterface(this), "android");
}
public void displayAd() {
[Ad Code Here]
}
}
WebAppInterface.java
public class WebAppInterface {
Context mContext;
WebAppInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void ad() {
MainActivity.displayAd();
}
}
このコードは動作しません。どのように変更して動作させることができますか?
のようにインタフェースする活動の参照を渡しますか?エラーメッセージを投稿し、投稿内のエラーメッセージの行番号を強調表示してください。 – tima
@tima私のdisplayAd()関数は静的である必要があると言うので、プロジェクトを構築することさえできません。静的に変更すると、mInterstitialAd要素への参照が失われます。 – TheAndroidProgrammer