webview中的文件将无法在Windows Phone上加载

Files in webview will not load on Windows Phone

本文关键字:Windows Phone 加载 文件 webview      更新时间:2023-09-26

我开发了一个混合web应用程序,并使用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();

测试/资源/app/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版本中,一切都像预期的那样运行。图像加载得很好)。这是与钛SDK 5.3.1。

可以用ms-appx-web:///作为图像的前缀,然后提供Resources目录中的相对路径。在这个例子中,正确的img标签应该是

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

然而,这在iOS和Android中不计算,所以你需要想出一个解决方案,在Windows和iOS/Android中使用不同的图像路径。