新的Flash Player 14中的"ExternalInterface escapes strings using JSON conventions"是什么?



使用ExternalInterface时出现错误,如下所示:

警告:对于针对Flash Player版本14或更高版本的内容,ExternalInterface使用JSON约定转义字符串。维护兼容性,发布到早期Flash Player版本的内容继续使用遗留的转义行为。

我应该怎么做才能防止出现警告,我应该使用什么"遗留转义"而不是"JSON约定"?

错误是由于json数据未转义所致。您可以简单地通过转义来防止错误:

ExternalInterface.call(callBackFunction, escape(jsonData));

希望这能有所帮助!

当字符串从运行的SWF发送到包含禁止字符的JavaScript时,调试器控制台中会出现此警告。这也可能影响深度链接是否按预期工作。

ExternalInterfaceBrowserManagerAPI都会受到影响。如果单独使用escape()方法不足以消除警告,请尝试:

escape(str).replace(/./g, "%2E").replace(/:/g, "%3A").replace(///g, "%2F");

一般来说,除非你有充分的理由,否则你应该避免使用"遗留"一词

好的理由包括但不限于:

  1. 在您当前的业务限制范围内,将旧代码从遗留系统中转换出来是不可能的
  2. 遗留系统包含更新系统未提供的基本特征

遗留系统的问题是公司/开发人员没有义务继续维护它

此特定错误消息意味着:

  1. 如果您将目标设置为Flash Player 14或更高版本,它将使用符合JSON的转义方法
  2. 如果这与您的外部代码不兼容,您需要针对Flash Player 13或更低版本

"JSON合规性"或"JSON约定"只是意味着任何JSON专用字符都将被转义,以防止潜在的错误

最新更新