Вы можете попробовать мой плагин flutter_inappwebview , который является плагином Flutter, который позволяет вам добавлять встроенные WebView или открывать окно браузера в приложении и имеет множество событий, методов и параметров для управления WebViews. .
В вашем случае вы можете использовать аргумент initialData
и установить свой собственный HTML через атрибут InAppWebViewInitialData.data
и установить InAppWebViewInitialData.baseUrl
на http://localhost
:
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(new MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
InAppWebViewController webView;
String customHTML = "";
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('InAppWebView Example'),
),
body: Container(
child: Column(children: <Widget>[
Expanded(
child: InAppWebView(
initialData: InAppWebViewInitialData(data: """
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>InAppWebViewInitialDataTest</title>
<script type="text/javascript" src="https://cdn.embedly.com/widgets/platform.js"></script>
</head>
<body>
$customHTML
</body>
</html>
""", baseUrl: 'http://localhost'),
initialHeaders: {},
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
debuggingEnabled: true,
)
),
onWebViewCreated: (InAppWebViewController controller) {
webView = controller;
},
onLoadStart: (InAppWebViewController controller, String url) {
},
onLoadStop:(InAppWebViewController controller, String url) {
},
))
])),
),
);
}
}
Теперь у вас есть доступ к document.cookie
, используя JavaScript!
Другой способ - поместить HTML в файл ресурсов (см. Загрузить файл в папку ресурсов Раздел ), а затем вы можете использовать InAppLocalhostServer
, чтобы запустить локальный сервер для обслуживания вашего файла HTML с вашим скриптом.