1

クロスドメイン ページを呼び出し、データをダウンロードしてアプリに表示する Firefox OS アプリがあります。systemXHR パーミッションを使用し、すべての XMLHttpRequest に { mozSystem: true } を追加したため、すべて正常に動作します。

次に、Flurry スクリプトを添付し、アプリの .js で FlurryAgent 呼び出しを行い、Firefox OS シミュレーターで実行したときに、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);
    } 
});

何が起こったのかを理解するために他に必要なことがあれば、お知らせください。私が使用しているデバイスは Qualcomm モデル、特に Peak であり、OS バージョンは 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 に答える