2015-02-17 57 views
6

我無法從Android設備讀取www/config.xml文件。我嘗試了兩種不同的方法。首先,我嘗試使用另一個線程推薦的$ http服務。當沒有工作時,我嘗試使用Cordova文件插件。我這樣做的原因是嘗試從應用程序中的www/config.xml文件中獲取版本號。下面是兩種方法:從設備讀取離子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)科爾多瓦文件插件

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 
+1

你試過'URL =「config.xml'' – 2015-02-17 20:36:12

+0

是的,這是我的第一次嘗試。它不起作用。 – eNddy 2015-02-17 20:51:45

+0

接下來,我將檢查該文件是否存在於構建中。取出你的APK/IPA文件,將擴展名改爲'.zip',然後瀏覽內容,看看離子是否在構建項目時刪除該文件。 – 2015-02-17 21:19:28

回答

2

看看文件夾平臺/ Android和你可以看到,文件'android_asset/www/config.xml'不存在。 您可以嘗試閱讀文件'/res/xml/config.xml',或者您可以嘗試其他方法,例如創建Cordova Hook

科爾多瓦鉤

科爾多瓦魚鉤表示其可以通過 應用程序和插件的開發者,甚至通過自己的編譯系統被添加到 定製科爾多瓦命令特殊腳本。

你可以基於相同的鉤適應replace text hook from this article或本build number hook

UPDATE

若要僅獲取您的應用程序的版本號,你可以使用這個插件:

科爾多瓦AppVersion插件

科爾多瓦插件返回的版本號目前的應用程序

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

Is available also with ngCordova

1

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; 
}); 
+0

非常好。我可以問你有哪些'$ ionicPlatform.ready'回調?這是你添加的東西,還是預先存在於Ionic應用程序中? – isherwood 2015-09-24 13:47:16

+1

這是一個離子服務:[鏈接](http://ionicframework.com/docs/api/service/$ionicPlatform/), 和一點更詳細:[鏈接](http://ionicframework.com/docs/ API /效用/ ionic.Platform /)。 我傳遞了一個回調函數,開始我的應用程序初始化。 – 2015-09-24 16:30:10