我正在使用 PhoneGap 为 Windows、Android 和 iOS 平台开发应用程序。
我有一个问题,需要你们的专家帮助。
我为 Windows Phone 创建了一个插件。插件基本上是从 URL 下载图像并存储在 Downloads 文件夹内的独立存储文件夹中,这是成功的。
现在我的问题是有没有办法从 javascript 访问隔离的存储文件。例如,我已经下载了一张图片并存储在隔离存储中(“下载/logo.png”),现在我必须将此图片设置为我的 html 图像源。例如<img src="ms-appdata:///local/Downloads/logo.png"/>
但未能成功。我已经尝试了几种方法,但没有运气。
我使用以下代码将文件保存在隔离存储中。
//This code is working fine for saving image from url to isolated storage
IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication();
//Create directory if does not exists
if (ISF.DirectoryExists(IMAGE_FOLDER_PATH) == false)
{
Debug.WriteLine("Directory created");
ISF.CreateDirectory(IMAGE_FOLDER_PATH);
}
WebClient client = new WebClient();
string modeuleName = hamBurgerMenu[MODULENAME_COLUMN_INDEX];
client.OpenReadCompleted += (s, e) =>
{
if (e.Error == null)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
string fullPath = Path.Combine(IMAGE_FOLDER_PATH, modeuleName + ".png");
var bi = new BitmapImage();
bi.SetSource(e.Result);
var wb = new WriteableBitmap(bi);
using (var isoFileStream = isoStore.CreateFile(fullPath))
{
var width = wb.PixelWidth;
var height = wb.PixelHeight;
Extensions.SaveJpeg(wb, isoFileStream, width, height, 0, 100);
}
}
});
}
};
client.OpenReadAsync(new Uri(imageURL, UriKind.Absolute));
我尝试了以下解决方案,但根本无法成功。
<img src="file:///C:|/Data/Users/DefApps/AppData/{9DB..............0CC}/local/Downloads/logo.png"/>
<img src="ms-appdata:///local/Downloads/logo.png"/>
<img src="ms-appx:///Downloads/logo.png"/>
您的意见或建议将不胜感激!谢谢和问候, 伊姆达杜森