如何在HTML文件中为WebInvoke设置javascript src(WP7.5,Silverlight)
问题描述:
我正在使用Windows Phone中的WebBrowser控件调用JavaScript调用。现在,当我在线参考脚本时,代码工作正常。但是,当我在本地引用它时,它会中断。如何在HTML文件中为WebInvoke设置javascript src(WP7.5,Silverlight)
我在想它与孤立存储以及WP7应用程序如何安装有关,但我想让别人需要。
HTML文件包含:
<script type="text/javascript" src="scripts/myJavascript.js"></script>
当我做
<script type="text/javascript" src="http://mysite.com/myJavascript.js"></script>'
而且知道如何才能在本地引用文件,它工作得很好?我已将它设置为“内容并始终复制”。
最后,真正的文件是http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js 我需要让它脱机工作,所以我的用户不需要互联网连接来使用我的应用程序。
谢谢!
答
但是,我无法立即看到您的方法存在问题,但是您并未显示用于将文件加载到本地存储的代码。我建议您查看PhoneGap的源代码,该代码将多个文件加载到独立存储中以便在WebBrowser中进行渲染,以查看它是如何实现的。下面是PhoneGap的代码的相关opart:
fileResourceStreamInfo = Application.GetResourceStream(new Uri(file.path, UriKind.Relative));
if (fileResourceStreamInfo != null)
{
using (BinaryReader br = new BinaryReader(fileResourceStreamInfo.Stream))
{
byte[] data = br.ReadBytes((int)fileResourceStreamInfo.Stream.Length);
string strBaseDir = AppRoot + file.path.Substring(0, file.path.LastIndexOf(System.IO.Path.DirectorySeparatorChar));
if(!appStorage.DirectoryExists(strBaseDir))
{
//Debug.WriteLine("Creating Directory :: " + strBaseDir);
appStorage.CreateDirectory(strBaseDir);
}
// This will truncate/overwrite an existing file, or
using (IsolatedStorageFileStream outFile = appStorage.OpenFile(AppRoot + file.path, FileMode.Create))
{
Debug.WriteLine("Writing data for " + AppRoot + file.path + " and length = " + data.Length);
using (var writer = new BinaryWriter(outFile))
{
writer.Write(data);
}
}
}
}
答
科林说,对于相对路径在本地工作加载HTML文件中的所有文件必须先复制到独立存储,并从那里加载。
不是说源头帮助不仅仅是暗示要做什么,而是完全是这样。这些文件需要从应用程序安装中复制到isoloated存储中才能正确完成。谢谢! – Dave 2012-02-03 03:53:08