Вероятно, это должно быть просто, но у меня болит голова.По сути, я создаю приложение, которое загружает zip-файл, содержащий html, css, javascript и т. Д. Он распаковывает содержимое и сохраняет его в LocalApplicationData, загружает index.html в веб-просмотр, например:
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/";
}}
}
С точками останова я вижу возвращенный путь, и он выглядит нормально.
В качестве теста я попытался передать строку html с помощью iframe, источником которого был мой локальный html.Это загрузило HTML нормально, но дало мне кучу междоменных проблем с js.Потому что кадры должны взаимодействовать друг с другом.Если бы я мог обойти проблемы безопасности с помощью iframe, я бы согласился с таким подходом.
После того, как я еще больше возлюсь, я вижу эту странность.
Так что это странно.В iOS это то, что я вижу
URL файла - выглядит отлично
file: /// var / mobile / Containers / Data / Application / 04BFAB43-2D92-48D3-941D-C48C8686E0A5/Documents/Courses/2d7d0a7d-145a-41d0-9abf-685a2b5dfc3c/Online_Place_Test_no_timer_pack/YKZOP4NACH3EPJNTG6M4T2BQDI/Unit_4_5/99/// */ Контейнеры / Данные / Приложение / 04BFAB43-2D92-48D3-941D-C48C8686E0A5 / Документы / Курсы / 2d7d0a7d-145a-41d0-9abf-685a2b5dfc3c / Online_Placement_Test_no_timer_pack / YKZOP4NACH6 * J2_JD_TF_DF_D_W_D_W_S_F_S_W_S_W_W_S_ * * *- странно, обратите внимание, как добавляется имя файла HTML.Теперь этого не происходит, поскольку
file: /// var / mobile / Containers / Data / Application / 04BFAB43-2D92-48D3-941D-C48C8686E0A5 / Документы / Курсы / 2d7d0a7d-145a-41d0-9abf-685a2b5dfc3c /Online_Placement_Test_no_timer_pack / YKZOP4NACH3EPJNTG6M4T2BQDI / Unit_4_5 / 995 / Unit.html / JS / bootstrap.min.js