在WebView中使用JavaScript访问Windows运行时文件
本文关键字:访问 Windows 运行时 文件 JavaScript WebView | 更新日期: 2023-09-27 18:13:45
我正在使用Three.js尝试实现一个跨平台的3D模型查看器。目前,我已经得到了它的工作和嵌入在我的XAML和c#应用程序的win8.1和Windows Phone 8.1与WebView。目前,我正在使用c#代码从设备上的文件以及捆绑文件中加载模型(三角形网格)。问题是,这意味着我必须从c#调用一个JavaScript函数,我想要添加的每个三角形,这使得UI无响应一段时间。我试图运行脚本异步和运行加载器异步,但它并没有真正的帮助,因为所有的JS函数调用需要由核心调度程序处理,否则我得到一个无效的线程访问异常。一开始我并没有意识到这一点,我以为用c#加载会更简单,性能更高。我现在可能不得不在JS中重做加载器…
我现在需要问的是关于如何从JavaScript访问文件的一些信息。我知道Windows RT支持JS的文件访问API,但我猜这对整个JS应用程序来说更重要,因为它似乎不能从WebView内部工作*。我也更喜欢一些跨平台的东西,因为这也需要在Windows Desktop, iOS, Android,可能还有Mac和Linux上工作,所以我最好的选择是什么?
*我已经尝试了JS在http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.pickers.fileopenpicker.aspx在我的WP 8.1应用程序,但没有文件选择器出现。我的WebView似乎冻结虽然,但我也没有得到任何异常或弹出。
p。我有一种感觉,它可能归结为我必须复制文件到JS可以访问的临时文件夹。这并不理想,因为复制会浪费时间,但如果这是我唯一的选择,那么我可能不得不这么做。如果这是我唯一的选择,我会感谢一些帮助实现它,因为JavaScript真的不是我的语言,我只使用它,因为Three.JS…
当你使用WebView时,你最终会遇到这样的情况:你需要在你的主机应用程序(c#代码,假设你没有重写它)和你在WebView中托管的网站之间来回发布消息。这两者基本上是相互隔离的。
你可以不使用Three.js格式的文档加载你的几何图形吗?它看起来在这里可用:https://github.com/mrdoob/three.js/wiki/JSON-Geometry-format-4
这样你就可以代理整个几何体而不是每个单独的三角形。