我想通过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