当 admob 代码在使用 localStorage 的 Phonegap/Cordova 应用程序中初始化时,localStorage 似乎被 admob 广告视图覆盖。
这是在 Cordova 2.2 应用程序中初始化 admob 代码(使用 SDK 的 v6.2.1)的代码:
public class Foo extends DroidGap
{
private AdView adView;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl("file:///android_asset/www/index.html", 3000);
adView = new AdView(this, AdSize.SMART_BANNER, "AD_MOB_ID");
root.addView(adView);
AdRequest request = new AdRequest();
request.setTesting(true);
adView.loadAd(request);
}
广告已加载,但我用来维护用户会话的 localStorage 似乎已被清除并显示登录页面。当我评论 admob 初始化代码时,localStorage 被恢复并且用户的会话又回来了。
根据 [1] 和 [2] 的说明,我添加了一个处理程序::
public class Foo extends DroidGap
{
private AdView adView;
private Handler mHandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl("file:///android_asset/www/index.html", 3000);
mHandler.postDelayed(new Runnable() {
public void run() {
loadAdmob();
}
}
}
private void loadAdmob()
{
adView = new AdView(this, AdSize.SMART_BANNER, "AD_MOB_ID");
root.addView(adView);
AdRequest request = new AdRequest();
request.setTesting(true);
adView.loadAd(request);
}
这会在 10 秒后尝试加载广告,但我在 logcat:: 中收到以下消息
adRequestUrlHtml: <html>...
Received ad url: <url: ...
Request Scenario: Offline with no buffered ads.
Network is unavailable. Aborting ad request.
onFailedToReceiveAd(A network error occurred.)
我可以确认网络连接没有问题(因为应用程序中的其余数据已显示并通过网络获取)但广告没有显示。我做错了什么还是这是一个错误?解决此问题的方法将很有帮助。
[1] Android + HTML5(LocalStorage) + Admob:错误?
[2] https://github.com/phonegap/phonegap/wiki/In-App-Advertisements