-1

我想替換/更新我的應用程序包中的一些文件。我試過這段代碼,但它所做的只是創建一個副本。如果我嘗試替換文件icon.png,該文件將被複製爲icon-copy.png。有沒有一種方法可以實際替換原始文件。刷新應用程序內容動態爲Windows應用程序商店

Windows.Storage.ApplicationData.current.localFolder.getFileAsync("SplashImage.png") 
.done(function (sourcefile) { 
    var root = Windows.ApplicationModel.Package.current.installedLocation.path; 
    var path = root + "\\images"; 
    var StorageFolder = Windows.Storage.StorageFolder; 
    var folderPromise = StorageFolder.getFolderFromPathAsync(path); 
    folderPromise.done(function (folder) { 
     sourcefile.copyAsync(folder,"SplashImage.png", Windows.Storage.NameCollisionOption.ReplaceExisting).done(function(result){ 


      Windows.System.Launcher.launchFileAsync(result).done(function() { 
       alert("success"); 
      }); 



    }); 


     }); 


    }); 

回答

0

包內容是隻讀的,所以你不能在運行時替換它們。一般的策略是將包文件的圖像從那裏使用MS-應用程序數據複製到本地存儲,並引用:///本地/的URI(記住創建Windows.Foundation.Uri的實例在必要時 - 檢查API你正在使用)。然後您可以隨時替換該文件。

從您的代碼看,您希望替換應用的啓動屏幕圖像。這隻能通過更新Store中的應用程序包來完成,因爲該圖像可以保證應用程序顯示的內容即使它的代碼沒有執行過。

要自定義啓動畫面,您使用的是「擴展啓動畫面」,這意味着使您的應用程序的第一頁開始看起來像默認的屏幕,然後過渡到你想要的任何自定義設置。我在附錄B的免費電子書Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition中詳細介紹了這一點。

相關問題