1

我有一个 Firefox OS 应用程序,它调用跨域页面并下载数据以显示在应用程序上,一切正常,因为我使用了 systemXHR 权限并在每个 XMLHttpRequest 上附加了 { mozSystem: true }。

然后我附加了 Flurry 脚本,在应用程序的 .js 中进行了 FlurryAgent 调用,并在我在 Firefox OS Simulator 上运行它时开始从 Flurry 事件日志中的事件中接收信息。当我尝试在 Firefox OS 设备上安装我的应用程序时,Flurry 会话永远不会启动并且应用程序永远不会加载。

我不明白为什么 Flurry 在模拟器上工作而不是在设备上工作。我检查了很多次设备上的互联网连接,对于浏览器和其他已安装的应用程序来说工作正常。在我连接 Flurry 之前,我的应用程序在设备上运行良好。

这是我的代码示例:

HTML:

<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>My App</title>
    <link rel="stylesheet" href="js/jquery.mobile-1.3.2.min.css" />
    <script src="js/jquery-1.10.2.min.js"></script>
    <script src="js/jquery.mobile-1.3.2.min.js"></script>
    <link rel="stylesheet" href="css/mystyle.css" />
    <script src="https://cdn.flurry.com/js/flurry.js"></script>
    <script src="js/app.js"></script>


</head> 


<body> 

.js

$(document).on('pagebeforecreate', '[data-role="page"]', function(){    
    if ($(this).attr('id')=="splash"){
        $.mobile.allowCrossDomainPages = true;
    }
});
$(document).on('pageinit', '[data-role="page"]', function(){    
    console && console.log($(this).attr('id') + " - pageinit!!");
    if ($(this).attr('id')=="splash"){
        FlurryAgent.startSession("7ZFX9Z4CVT66KJBVP7CF"); //Here is were it crashes
        alert("Inicio sesion flurry");
        console && console.log($(this).attr('id') + "- Entro al if para el timer");
        var timer = window.setTimeout(next, 10000);
    } 
});

如果您需要其他任何事情来帮助我弄清楚发生了什么,请告诉我。我正在使用的设备是高通型号,特别是 Peak,并且具有操作系统版本:Boot2Gecko 1.1.1.0hd-GP

4

1 回答 1

2

这可能是 CSP 问题。看看:https ://developer.mozilla.org/en-US/Apps/CSP?redirectlocale=en-US&redirectslug= Apps%2FCSP 特别禁止远程脚本。

于 2013-11-11T18:19:54.850 回答