webview中的文件无法在Windows Phone

时间:2016-08-09 20:00:19

标签: javascript titanium appcelerator

我开发了一个混合网络应用程序,并使用Appcelerator / Titanium SDK将其转换为本机移动应用程序。代码库在iOS和Android上都运行良好。但是,当我构建到Windows并在Windows Phone 8.1模拟器上运行它时,它不起作用。

我已经调试了这个问题并且已经发现它与不加载主index.html文件中引用的图像和javascript文件有关(这是我加载到WebView中的本地文件)。但是,我无法弄清楚如何解决这个问题。我是否需要以不同的方式为Windows引用文件?

编辑:一个基本测试用例...创建一个没有额外插件或模块的简单应用程序。

测试/资源/ app.js

var win = Ti.UI.createWindow({
    title: 'Testing'
  }),
  webview = Ti.UI.createWebView({
    url: 'app/index.html',
    top: 0,
    left: 0
  });

win.add(webview);
win.open();

测试/资源/应用/ index.html中

<html>
<body>
    <h1>Hello World!</h1>
    <img src="test.png" />
</body>
</html>

将任何图片放入test/Resources/app/test.png

在Windows Phone版本中,您将看到Hello World标题,但不会加载图像。在iOS和Android版本中,一切都按预期工作(例如,图像加载得很好)。这是使用Titanium SDK 5.3.1.GA和appcelerator CLI 5.3.1。

1 个答案:

答案 0 :(得分:0)

您可以使用ms-appx-web:///为图像添加前缀,然后提供Resources目录中的相对路径。所以在这种情况下,正确的img标签将是

ms-appx-web:///app/test.png

但是,这不能在iOS和Android中进行计算,因此您需要为Windows和iOS / Android提供使用不同图像路径的解决方案。