【发布时间】:2013-07-14 01:37:32
【问题描述】:
当在使用 localStorage 的 Phonegap/Cordova 应用程序中初始化 admob 代码时,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: Bug?
[2]https://github.com/phonegap/phonegap/wiki/In-App-Advertisements
【问题讨论】:
-
为什么 3000 值是 loadUrl 的一部分,而不是处理程序的一部分?你试过改变吗?