从设备读取离子www / config.xml文件

时间:2015-02-17 20:04:55

标签: cordova ionic-framework cordova-plugins ionic

我无法从Android设备上阅读www / config.xml文件。我尝试了两种不同的方法。首先,我尝试使用另一个线程中推荐的$ http服务。当这不起作用时,我尝试使用Cordova文件插件。我这样做的原因是尝试从应用程序中的www / config.xml文件中获取版本号。以下是两种方法:

1)$ http.get()

 url = 'file:///android_asset/www/config.xml'
 $http.get(url)
    .then ((data) ->
      versionNumber = data.data.match(/<widget\s.*?\sversion=['"]([^'"]+)['"]/)
      verNum = versionNumber[1]
    ), (err) ->
    # {"data": null, "status": 0, .....}
      alert JSON.stringify err

2)Cordova文件插件

   if ionic.Platform.isAndroid()
    path = 'file:///android_asset/www/'
    file = 'config.xml'
    $cordovaFile.readAsText(path, file)
      .then ((data) ->
        alert JSON.stringify data
        return
      ), (error) ->
        # I alert { code: 5 } which is an ENCODING_ERR
        alert JSON.stringify error

2 个答案:

答案 0 :(得分:2)

查看文件夹platforms / android,您可以看到文件'android_asset/www/config.xml'不存在。 您可以尝试阅读文件'/res/xml/config.xml',也可以尝试其他方法,例如创建Cordova Hook

  

Cordova Hooks

     

Cordova Hooks代表可以添加的特殊脚本   应用程序和插件开发人员甚至可以通过自己的构建系统来实现   自定义cordova命令。

您可以根据相同的挂钩调整replace text hook from this article或此build number hook

<强>更新

要获取应用的版本号,您可以使用此插件:

  

Cordova AppVersion插件

     

Cordova插件返回当前应用的版本号

     

https://github.com/whiteoctober/cordova-plugin-app-version

Is available also with ngCordova

答案 1 :(得分:2)

ngCordova在使用离子时有很多插件。 要获取应用版本,请使用以下版本:http://ngcordova.com/docs/plugins/appVersion/

我想在启动画面中显示版本号,所以我使用了他们的示例并添加了一个事件:

内部$ionicPlatform.ready回调:

$cordovaAppVersion.getVersionNumber().then(function (version) {
    $rootScope.$broadcast("appVersionResolved", { version: appVersion });
}

在启动画面控制器中:

$rootScope.$on("appVersionResolved", function(event, args) {
    $scope.appVersion = args.version;
});