【问题标题】:Cordova firefoxos web access issueCordova firefoxos 网络访问问题
【发布时间】:2014-08-20 22:14:08
【问题描述】:

我正在尝试将我正常工作的(在 iOS、Android 中)cordova 应用程序移植到 Firefoxos。

模拟器正常启动,其浏览器可以加载网页,但我的应用无法从网络加载数据。

查看控制台我看到以下错误:

"JavaScript error: app://aa2a2c24-a8d6-447d-92da-4f2e9af65661/plugins/org.apache.cordova.network-information/src/firefoxos/NetworkProxy.js, line 33: missing : after property id" simulator-process.js:44
"JavaScript error: app://aa2a2c24-a8d6-447d-92da-4f2e9af65661/cordova.js, line 1120: Module org.apache.cordova.network-information.NetworkProxy does not exist."

有什么建议吗?谢谢。

科尔多瓦 3.5.0

模拟器 FirfeoxOS 1.3 和 FirfeoxOS 1.4

【问题讨论】:

    标签: networking cordova simulator


    【解决方案1】:

    经过一番研究,我发现了问题

    1- 尽管将 cordova 升级到 3.5.0,但我必须记住插件不会自动更新。

    为了更新 firefoxos 的插件代码,我再次添加了相同的插件,删除了 firefoxos 平台并重新安装了它。 那时,javascript 错误消失了

    2- 然后由于权限,ajax 调用仍然无法访问。为确保您可以进行 ajax 调用,您必须在 manifest.webapp 中放入以下代码

     "type": "privileged",
      "permissions": {
        "systemXHR": { "description": "Required for AJAX calls in app"}
      }
    

    “类型”和“权限”都需要

    3- 最后你必须确保使用 ajax 调用

    mozSystem: true
    

    特别是对于 jquery,你可以在你的 js 文件顶部添加如下内容:

     if (device.platform == 'firefoxos') { 
      $.ajaxPrefilter( function( options ) {
      if ( options.firefoxOS ) {
        options.xhr = function() {
          return new window.XMLHttpRequest( {
        mozSystem: true
          } );
        }
      }
    } );
    
    $.ajaxSetup( {
      firefoxOS: true
    } );
    

    }

    现在我可以正确处理 ajax 调用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 2016-03-15
      • 2019-12-18
      相关资源
      最近更新 更多