我无法从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
答案 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插件返回当前应用的版本号
答案 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;
});