2012-12-20 59 views

回答

9

根據WebViewdocumentation可以使用ms-appx-web協議,即加載存儲在Windows.ApplicationModel.Package.Current.InstalledLocation的文件,這意味着他們需要與應用程序一起分發的內容只能引用其他文件。由於安全原因,控制器不支持ms-appdata協議,即您無法打開存儲的文件Windows.Storage.ApplicationData.Current.LocalFolderWindows.Storage.ApplicationData.Current.RemoteFolderWindows.Storage.ApplicationData.Current.TempFolder如果您在運行時生成或下載它們,則需要將它們放置。

在JavaScript應用程序WebView是多一點flexible:它也支持ms-appdata協議,但只適用於媒體文件,如圖像。它無法打開任何潛在的可執行代碼,如腳本或CSS。

+0

完美工作,感謝您的幫助打開。我很抱歉沒有在文檔中找到它。 – Smeegs

+0

現在這仍然是真的嗎?我以爲我讀過現在支持ms-appdata URL – Chicowitz

0

如果WebView是基於IE10的,則可能是您正在查找的是FIleReader。下面是代碼,我使用的圖像ipload頁面在頁面中顯示的圖像時,他們通過一個文件打開對話框中選擇一個片段:

$('input:file').each(function(index, evt){ 
    if(index===0) 
    { 
     var files = evt.files; 
     for(var i=0;i<files.length;i++) 
     { 
      if(files[i].name===filename) 
      { 
       var reader = new FileReader(); 

       reader.onload=(function(theFile){ 
        return function(e){ 
         var line= uploader.fineUploader('getItemByFileId',id); 
         if(line!=undefined) 
          $(line).append('<img class="fileimage" id="fileImage-' + id + '" src="'+e.target.result+'" />'); 
        }; 
       })(files[i]); 
       reader.readAsDataURL(files[i]); 
       break; 
      } 
     } 
    } 

我希望這點你在正確的方向!

1

如果你想打開一些本地.html文件或atc。您應該將其下載到InstalledLocation文件夾中。如果你還沒有選擇創建一個新的文件,你可以使用file.CopyAsync(htmlFolder, fname + ".html"); 例如,我創造了一些.html文件:

StorageFolder htmlFolder = await Windows.ApplicationModel.Package.Current.InstalledLocation.CreateFolderAsync(@"HtmlFiles", CreationCollisionOption.GenerateUniqueName); 
IStorageFile file = await htmlFolder .CreateFileAsync(fname + ".html", CreationCollisionOption.GenerateUniqueName); 

,比我可以很容易地打開這個.HTML帶或不帶FileOpenPicker文件:

var fop = new FileOpenPicker(); 
fop.FileTypeFilter.Add(".html"); 
var file = await fop.PickSingleFileAsync(); 
if (file != null) 
{ 
    string myPath = file.Path.Substring(file.Path.IndexOf("HtmlFiles")); 
    myWebview.Navigate(new Uri("ms-appx-web:///" + myPath)); 
} 

而且不要忘了 - 僅僅只從InstalledLocation你可以用ms-appx-web:///

相關問題