【问题标题】:mraid undefinedmraid 未定义
【发布时间】:2019-12-30 21:52:45
【问题描述】:

我一直在尝试制作符合 mraid 标准的广告,但还没有走多远。根据官方文档,可以在this link找到,添加一个简单的

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

应该足够了。然而,情况似乎并非如此。我复制了以下示例代码来测试 mraid 对象的存在,但它只是保持未定义。确切的 FireBug 错误是:

ReferenceError: mraid 未定义

我正在尝试执行以下(非常简单的)代码:

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

有人遇到过这个问题吗?

【问题讨论】:

  • 您的代码错误,您希望 mraig.getState 返回“就绪”,但此状态不存在。这是许多 MRAID 示例代码中的常见错误,实际上当 mraid 准备好时,mraid.getState 返回“默认”。
  • 感谢您的评论! :) 这不是问题,正如 John Cappiello 已经提到的那样,但以后肯定会成为问题 :)

标签: javascript mraid


【解决方案1】:

是的,没有那么简单,规范也不完全清楚。

mraid.js 由您从任何广告平台注入。

看起来像这样:

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

广告 SDK 实例化 UIWebView 并注入 mraid.js 以使其可用。然后你上面的脚本标签找到它,加载它,其他一切都从那里自行解决。

您的选择是:

  1. 制作你自己的 mraid.js 用于测试目的,它有足够的规范来方便 /testing
  2. 启动一个移动广告服务器 SDK,为您完成上述工作,然后针对它进行测试
  3. 结帐http://webtester.mraid.org 可以让您避免上述一些情况

2 是最精确的。 1 和 3 让您走得更远,但没有什么能比得上应用程序中的真实事物与实际广告服务器的 sdk 处理事物。

【讨论】:

  • 谢谢!文档非常不清楚,您的解释信息量更大!
  • 测试 mraid.js 会是什么样子?我找到了 admob (Google) 使用的模拟,但这似乎不起作用。
  • 它必须实现 mraid 对象,以及规范要求的所有事件、侦听器和方法,或者至少是您正在使用的子集。查看隐藏在 webtester 中的代码,可在此处完整下载 code.google.com/p/mraid-web-tester
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-21
  • 2018-09-08
相关资源
最近更新 更多