当前位置: 首页 > news >正文

网站搭建者xin主题wordpress

网站搭建者,xin主题wordpress,建设企业网站收费,建设网页制作在 Flutter 开发中#xff0c;加载本地 HTML 文件是一个常见的需求#xff0c;尤其是在需要展示离线内容或自定义页面时。flutter_inappwebview 是一个功能强大的插件#xff0c;支持加载本地文件和网络资源。本文将详细介绍如何使用 flutter_inappwebview 加载 App 本地 HT…在 Flutter 开发中加载本地 HTML 文件是一个常见的需求尤其是在需要展示离线内容或自定义页面时。flutter_inappwebview 是一个功能强大的插件支持加载本地文件和网络资源。本文将详细介绍如何使用 flutter_inappwebview 加载 App 本地 HTML 文件包括传统加载资源文件的方法和从 App 目录加载文件的方法。 一、传统加载资源文件 HTML 文件放置 首先将 .html 文件拖入工程中。通常我会将文件放在工程的根目录下与 pubspec.yaml 同级。 然后打开 pubspec.yaml 文件在 assets: 下添加该文件例如 flutter:assets:- membership_agreement.html加载本地 HTML 文件 接下来使用 rootBundle 读取文件内容并通过 InAppWebView 加载 HTML 数据。 dart复制 import package:flutter/material.dart; import package:flutter/services.dart show rootBundle; import package:flutter_inappwebview/flutter_inappwebview.dart;class LocalHtmlPage extends StatefulWidget {final String html;LocalHtmlPage({required this.html});override_LocalHtmlPageState createState() _LocalHtmlPageState(); }class _LocalHtmlPageState extends StateLocalHtmlPage {late InAppWebViewController _webViewController;FutureString _getFile() async {return await rootBundle.loadString(widget.html);}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text(加载本地 HTML 文件)),body: FutureBuilderString(future: _getFile(),builder: (context, snapshot) {if (snapshot.hasData) {final String htmlUrl Uri.dataFromString(snapshot.data!,mimeType: text/html,encoding: Encoding.getByName(utf-8),base64: true,).toString();return InAppWebView(initialUrlRequest: URLRequest(url: Uri.parse(htmlUrl)),onWebViewCreated: (controller) {_webViewController controller;},onLoadStart: (controller, url) {print(开始加载: $url);},onLoadStop: (controller, url) {print(加载完毕: $url);},onConsoleMessage: (controller, consoleMessage) {print(Console message: ${consoleMessage.message});},);}return Center(child: Text(读取失败));},),);} }二、加载 App 目录文件 需求背景 在某些场景下HTML 文件可能需要先下载到 App 的本地目录然后再从目录中加载。例如从网络下载 HTML 文件并保存到本地缓存目录。核心代码 以下是使用 flutter_inappwebview 加载 App 目录中的 HTML 文件的完整代码示例 import dart:io; import package:flutter/foundation.dart; import package:flutter/material.dart; import package:flutter_inappwebview/flutter_inappwebview.dart; import package:path_provider/path_provider.dart;class LocalHtmlPage extends StatefulWidget {final String htmlFileName;LocalHtmlPage({required this.htmlFileName});override_LocalHtmlPageState createState() _LocalHtmlPageState(); }class _LocalHtmlPageState extends StateLocalHtmlPage {late InAppWebViewController _webViewController;FutureFile? getLocalHtmlFile() async {final directory await getApplicationDocumentsDirectory();final filePath ${directory.path}/${widget.htmlFileName};final file File(filePath);if (await file.exists()) {return file;}return null;}Futurevoid load() async {try {final file await getLocalHtmlFile();if (file ! null) {print(加载本地 HTML 文件: file://${file.path});_webViewController.loadUrl(urlRequest: URLRequest(url: Uri.file(file.path)),);} else {print(文件不存在);}} catch (e, stackTrace) {print(加载本地 HTML 文件异常: $e);print(stackTrace);}}overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text(加载本地 HTML 文件)),body: InAppWebView(onWebViewCreated: (controller) {_webViewController controller;load();},onLoadStart: (controller, url) {print(开始加载: $url);},onLoadStop: (controller, url) {print(加载完毕: $url);},onProgressChanged: (controller, progress) {print(WebView 加载中 (进度: $progress%));},onConsoleMessage: (controller, consoleMessage) {print(Console message: ${consoleMessage.message});},gestureRecognizers: FactoryOneSequenceGestureRecognizer{Factory(() EagerGestureRecognizer()),}.toSet(),),);} }三、注意事项 文件路径问题 确保文件路径正确并且文件确实存在于指定路径下。 如果文件路径是动态生成的确保路径格式正确。 文件内容问题 确保 HTML 文件内容是有效的且没有语法错误。 可以在浏览器中直接打开该 HTML 文件确认其是否正常显示。 iOS 网络权限 如果加载的文件路径是 file://确保 iOS 的网络权限配置正确。在 Info.plist 中添加以下配置 keyNSAppTransportSecurity/key dictkeyNSAllowsArbitraryLoads/keytrue/ /dict日志输出 如果需要关闭日志输出可以在 Dart 代码中过滤日志消息或在 iOS 和 Android 项目中配置日志级别。 通过以上方法你可以灵活地使用 flutter_inappwebview 加载本地 HTML 文件无论是通过资源文件还是从 App 目录加载。希望本文能帮助你更好地实现这一功能。
http://www.pierceye.com/news/625652/

相关文章:

  • 网站建设手机建设网站 系统占用空间
  • 网站没内容网站域名.xin
  • 布吉建设网站网站是怎么制作出来的
  • 有赞网站开发凡科建站网
  • html5商业网站开发北大青鸟wordpress免费模版
  • 网站建设及那个科目提升网站页面打开速度
  • 直接玩的网页游戏关键词优化工具有哪些
  • 单页面网站如何优化引流四川网站建设贴吧
  • 贵州省建设银行网站wordpress首页调用文章缩略图
  • 项城市住房和城乡建设局网站融资平台公司
  • asp企业网站设计sage wordpress
  • 做视频网站需要哪些条件wordpress登录页面背景图片尺寸
  • 专门教做衣服的网站西宁电商网站建设
  • 无锡网站科技公司qq哪家公司开发的
  • 强化 门户网站建设今天的新闻大事
  • 专业做刀具网站的公司单页面网站模板
  • 企业网站制作及cms技术wordpress站点 HTML
  • 网络宣传网站建设制作加盟网络推广方案怎么写
  • 花店网站建设毕设介绍wordpress批量导入txt
  • 上海市网站建设定制百度推广怎么优化关键词的质量
  • 建设工程质量检测公司网站html5 响应式音乐网站
  • 网站建设托管推广海报中文域名做的网站
  • 临沂专业网站建设公司哪家好网站建设的网页
  • 当牛做吗网站源代码分享百度云帝国怎么做网站
  • 简约网站欣赏做美食网站赚钱吗
  • 一叶子网站建设目标教育平台oss做视频网站
  • 购物网站开发流程图wordpress 批量注册
  • 如何做网站优化的内容google网站推广
  • 网站模版亮点北京电商网站开发费用
  • 南昌专业的企业网站建设公司wordpress源码在哪