简体   繁体   English

Flutter:如何在 webview 中显示本地 html 文件?

[英]Flutter: How show local html file in webview?

I use this plugin in my fluttter app - webview_flutter .我在我的颤振应用程序webview_flutter中使用了这个插件。 I need show local html file in webview.我需要在 webview 中显示本地 html 文件。 This is not from assets, but I have path to this file.这不是来自资产,但我有这个文件的路径。 I try it:我试试看:

  1. Read file as string以字符串形式读取文件

    var file = File(_path); var data = await file.readAsString();
  2. prepare string准备字符串

    String _getHtml() { var html = Uri.dataFromString(data, mimeType: 'text/html').toString(); return html; }
  3. Show this string in my webview在我的 webview 中显示此字符串

    WebView( initialUrl: _getHtml(), )

But I have get error(on step Uri.dataFromString):但我收到错误(在步骤 Uri.dataFromString 上):

在此处输入图像描述

How fix it?怎么修? Any tips?有小费吗?

From here这里

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:webview_flutter/webview_flutter.dart';

class HelpScreen extends StatefulWidget {
  @override
  HelpScreenState createState() {
    return HelpScreenState();
  }
}

class HelpScreenState extends State<HelpScreen> {
  WebViewController _controller;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Help')),
      body: WebView(
        initialUrl: 'about:blank',
        onWebViewCreated: (WebViewController webViewController) {
          _controller = webViewController;
          _loadHtmlFromAssets();
        },
      ),
    );
  }

  _loadHtmlFromAssets() async {
    String fileText = await 
    rootBundle.loadString('assets/help.html');
    _controller.loadUrl( Uri.dataFromString(
        fileText,
        mimeType: 'text/html',
        encoding: Encoding.getByName('utf-8')
    ).toString());
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM