为Windows应用商店应用动态刷新应用内容

时间:2014-11-24 07:05:43

标签: javascript windows-phone-8 windows-runtime windows-store-apps winjs

我正在尝试更换/更新应用包中的某些文件。我尝试了这段代码,但它所做的就是创建一个副本。如果我尝试替换文件icon.png,该文件将被复制为icon-copy.png。有没有办法可以实际替换原始文件。

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");
           });



  });


      });


  });

1 个答案:

答案 0 :(得分:0)

包内容是只读的,因此您无法在运行时替换它们。一般策略是将包文件复制到本地存储,并使用ms-appdata:/// local / URIs从那里引用图像(记得在必要时创建Windows.Foundation.Uri实例 - 检查API你正在使用)。然后你可以随时替换该文件。

从您的代码中可以看出您想要替换应用的启动画面图像。这只能通过更新Store中的应用程序包来完成,因为该图像可以保证为应用程序显示某些内容,即使它的代码都没有执行。

要自定义启动画面,请使用“扩展启动画面”,这意味着您的应用的第一页最初看起来像默认屏幕,然后转换为您想要的任何自定义设置。我在附录B中的免费电子书Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition中详细介绍了这一点。