2013-03-15 109 views
1

我一直在尝试创建一个mraid兼容的广告,但并没有得到很大的进展。根据官方文档,可以在this link发现,又多了一个简单的mraid undefined

<script src='mraid.js'></script>

应该足够了。但是,这似乎并非如此。我复制下面的示例代码来测试mraid对象的存在,但它只是保持未定义。精确的萤火错误是:

ReferenceError: mraid is not defined

我试图执行以下(很简单)的代码:

if(mraid.getState() !='ready'){ 
console.log("MRAID NOT READY");} 

有没有人有这个问题的经验吗?

+1

你的代码错了,你期望mraig.getState返回'ready',但是这个状态不存在。这是很多MRAID示例代码的常见错误,实际上,当mraid准备就绪时,mraid.getState返回“default”。 – KKetch 2013-03-25 15:03:30

+0

感谢您的评论! :)这里不是问题,正如John Cappiello已经提到的那样,但是肯定会在以后出现问题:) – danvdende 2013-03-26 11:10:40

回答

5

是的,它不是那么简单,规范还不完全清楚。

mraid.js通过您的任何广告平台注入。

它看起来是这样的:

应用程序 - >广告SDK - > MRAID广告

的广告SDK实例化一个UIWebView并注入mraid.js可用。然后你的脚本标签找到它,加载它,并且其他所有东西都从那里解决。

你的选择要么是:

  1. 使自己mraid.js用于测试目的是有足够的天赋来得心应手/测试
  2. 自旋向上移动广告SDK服务器,做了上述的你,然后只是测试针对
  3. 结账http://webtester.mraid.org可以让你避免一些上述

2的是最精确的。 1 & 3让你远离,但没有什么比应用真正的广告服务器的SDK处理应用程序的东西。

+1

谢谢!文档很不清楚,你的解释是相当丰富的! – danvdende 2013-03-16 09:49:00

+0

测试mraid.js的样子是什么?我发现了一个admob(Google)使用的模拟器,但这似乎不起作用。 – danvdende 2013-03-19 14:26:35

+0

它必须实现mraid对象,以及规范所需的所有事件,侦听器和方法,或者至少是您使用的子集。查看埋在webtester中的代码,可以在此处http://code.google.com/p/mraid-web-tester/下载完整的代码。 – 2013-03-21 14:52:50