0

Webビューを使用してWindows8アプリに特定のデータを表示しています。ローカルのjsファイルへのインクルードを使用し、ローカルに保存された画像を使用したいと思います。

これは可能ですか?

ファイルが配置されているローカルパスを配置しても、運が悪かった。

4

3 に答える 3

9

WebView ドキュメントによると、ms-appx-webプロトコルを使用して他のファイルを参照することしかできません。つまり、に保存されているファイルをロードするためにのみ使用できます。つまりWindows.ApplicationModel.Package.Current.InstalledLocation、アプリケーションと一緒にコンテンツとして配布する必要があります。コントロールはms-appdata、セキュリティ上の理由からプロトコルをサポートしていません。つまり、保存されているファイルを開くことはできません。また、実行時にファイルを生成Windows.Storage.ApplicationData.Current.LocalFolder Windows.Storage.ApplicationData.Current.RemoteFolderまたはWindows.Storage.ApplicationData.Current.TempFolderダウンロードする場合は、ファイルを配置する必要があります。

JavaScriptアプリWebViewでは、もう少し柔軟性があります。プロトコルもサポートしms-appdataますが、画像などのメディアファイルに対してのみサポートします。スクリプトやCSSなどの実行可能ファイルを開くことはできません。

于 2012-12-20T05:39:26.080 に答える
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:///

于 2013-06-24T16:31:51.150 に答える
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;
            }
        }
    }

これがあなたを正しい方向に向けることを願っています!

于 2012-12-20T02:10:39.567 に答える