Delphi 10.4 社区版的 WebBrowser 在安卓下的问题

51 篇文章 6 订阅
44 篇文章 0 订阅

之前我写过一篇文章:Delphi APP 里面使用 HTML5 来做帮助文档,移植WebBroker进Android APP

在这篇文章里面,我提到把 HTML 的内容放进 SQLite 数据库,打包进 APP,然后使用 WebBrowser 通过内置的 Indy HTTP Server 访问数据库来显示 APP 发布给用户的帮助文档或者其它任意文档。

后来,为了不要在 APP 内部内置一个 Web Server,我试着程序启动后,将打包在 SQLite 数据库里面的 HTML, CSS, 以及页面中用到的图片,都以文件的形式,写入 TPath.GetDocumentsPath 路径下。

然后,在需要显示内容的时候,直接用:
WebBrowser1.URL := 'file://' + 文件名  的格式,用 WebBrowser 来显示这个 HTML 文件。

HTML 文件里面,还引用了一些 css 文件和 jpg 文件,也同时从数据库释放到同一个目录下。

上述方法,在 Delphi 10.3 社区版,编译为 Windows 版和安卓版,都执行成功。

同样的代码,到了 Delphi 10.4 社区版,在 Windows 底下执行成功,在安卓底下,出现错误提示:'The specified file was not found'.

反复测试,确定是 WebBrowser 的问题。然后发现 WebBrowser 有一个方法:LoadFromStrings

这个方法两个参数:一个是要加载的页面内容,是字符串;另外一个参数是 BaseURL,也是字符串。

使用 TStringList.LoadFromFile 方法加载 HTML 文件,然后:

var SL: TStringList;

WebBrowser1.LoadFromStrings(SL.Text, 'file://' + HTML文件名); 这句代码执行成功。

这里要注意,后面一个参数,BaseURL ,我采用文件名,前面加上【 file:// 】。

测试如果不加 file:// 则 HTML 页面内容倒是显示出来了,HTML 里面引用的图片没用显示,引用的 CSS 也没有起作用。

看起来,这应该是 Delphi 10.4 社区版的一个 bug. 可以多写几行代码绕过去。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值