gpt4 book ai didi

ios - 在从 Environment.SpecialFolder.LocalApplicationData 加载的文件上设置 BaseUrl

转载 作者:行者123 更新时间:2023-11-29 06:02:31 25 4
gpt4 key购买 nike

这可能应该很简单,但它一直让我头疼。基本上我正在创建一个应用程序来下载包含 html、css、javascript 等的 zip 文件。它解压内容并将其存储在 LocalApplicationData 中,将 index.html 加载到 webview 中,如下所示:

HtmlWebViewSource html = new HtmlWebViewSource();

html.Html = htmlString;
html.BaseUrl = DependencyService.Get().Get();
courseWindow.Source = html;

所有这些都工作得很好,除了我以未格式化的 html 结尾、没有运行脚本等。我假设这与 baseURL 有关,但是否可能是其他原因,例如资源被阻止加载?

如果有人遇到同样的问题或者可以为我指出正确的方向,那就太好了。

这是我的 Android 项目中的内容。

[assembly: Dependency(typeof(BaseUrl))]
namespace TCMobile.Droid
{
public class BaseUrl : iBaseURL
{
public string Get()
{
return "file:/" + System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData);
}
}
}

我还尝试对加载 html 的确切目录的路径进行硬编码。

[assembly: Dependency(typeof(BaseUrl))]
namespace TCMobile.Droid
{
public class BaseUrl : iBaseURL
{
public string Get()
{
return "file:/" + System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData) +
"Courses/2d7d0a7d-145a-41d0-9abf-685a2b5dfc3c/Online_Placement_Test_no_timer_pack/YKZOP4NACH3EPJNTG6M4T2BQDI/Unit_4_5/995/";
}}
}

通过断点,我可以看到返回的路径,看起来不错。

作为测试,我尝试使用 iframe 传递一个 html 字符串,该 iframe 的源代码是我的本地 html。这很好地加载了 html,但给我带来了一堆 js 的跨域问题。因为框架需要相互交互。如果我能解决 iframe 的安全问题,我就可以接受这种方法。

经过更多的探索后,我发现了这种奇怪的现象。

所以这很奇怪。在 iOS 中,这就是我所看到的

文件 URL - 看起来不错

文件:///var/mobile/Containers/Data/Application/04BFAB43-2D92-48D3-941D-C48C8686E0A5/Documents/Courses/2d7d0a7d-145a-41d0-9abf-685a2b5dfc3c/Online_Placement_Test_no_timer_pack/YKZOP4 NACH3EPJNTG6M4T2BQDI/Unit_4_5/995/单位.html/

BaseUrl 看起来不错

文件:///var/mobile/Containers/Data/Application/04BFAB43-2D92-48D3-941D-C48C8686E0A5/Documents/Courses/2d7d0a7d-145a-41d0-9abf-685a2b5dfc3c/Online_Placement_Test_no_timer_pack/YKZOP4 NACH3EPJNTG6M4T2BQDI/Unit_4_5/995/

在 Web 检查器中包含 Js - 奇怪,请注意 html 文件名是如何添加的。现在这已经不再是了

文件:///var/mobile/Containers/Data/Application/04BFAB43-2D92-48D3-941D-C48C8686E0A5/Documents/Courses/2d7d0a7d-145a-41d0-9abf-685a2b5dfc3c/Online_Placement_Test_no_timer_pack/YKZOP4 NACH3EPJNTG6M4T2BQDI/Unit_4_5/995/Unit.html/js/bootstrap.min.js

最佳答案

我猜你已经从WebView获得了依赖服务docs ,因此您尝试在每个平台上以不同的方式正确配置 BaseUrl

您可以分享您的依赖服务代码吗?您必须对 sample 进行一些更改因为它假设您的 html、css、javascript 位于应用程序的静态资源中。相反,您需要将路径返回到保存它们的位置。

关于ios - 在从 Environment.SpecialFolder.LocalApplicationData 加载的文件上设置 BaseUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54487717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com