2012-02-02 79 views
0

我正在使用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 我需要让它脱机工作,所以我的用户不需要互联网连接来使用我的应用程序。

谢谢!

回答

1

但是,我无法立即看到您的方法存在问题,但是您并未显示用于将文件加载到本地存储的代码。我建议您查看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); 
      } 
     } 
    } 
} 
+0

不是说源头帮助不仅仅是暗示要做什么,而是完全是这样。这些文件需要从应用程序安装中复制到isoloated存储中才能正确完成。谢谢! – Dave 2012-02-03 03:53:08

1

科林说,对于相对路径在本地工作加载HTML文件中的所有文件必须先复制到独立存储,并从那里加载。

相关问题