我需要在我的应用程序中显示桌面版本的网站。对我来说,它显示了移动版本的应用程序:
代码:
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
import './landing_page.dart';
class ComicsPage extends StatefulWidget {
@override
_ComicsPageState createState() => _ComicsPageState();
}
class _ComicsPageState extends State<ComicsPage> {
TextEditingController controller = TextEditingController();
FlutterWebviewPlugin flutterWebviewPlugin = FlutterWebviewPlugin();
var urlString = "https://avengers.marvelhq.com/comics";
launchUrl() {
setState(() {
urlString = controller.text;
flutterWebviewPlugin.reloadUrl(urlString);
});
}
@override
void initState() {
super.initState();
flutterWebviewPlugin.onStateChanged.listen((WebViewStateChanged wvs) {
print(wvs.type);
});
}
@override
Widget build(BuildContext context) {
String newUA= "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101
Firefox/40.1";
return WebviewScaffold(
appBar: AppBar(
actions: <Widget>[
IconButton(
icon: Icon(Icons.cancel,size: 45.0),
onPressed: () => Navigator.of(context).pushAndRemoveUntil(new
MaterialPageRoute(builder: (BuildContext context) => new LandingPage()),
(Route route) => route == null),
)
],
title: const Text('Marvel Comics'),
),
url: urlString,
withZoom: true,
withJavascript: true,
withLocalStorage: true,
scrollBar: true,
enableAppScheme: true,
userAgent: newUA,
clearCookies: false,
clearCache: false,
);
}
}
i need to view like this sample image
特别是这个网站:click here
我尝试将useragent更改为桌面版本(Mozilla/5.0 (Windows NT6.1;WOW64;rv:40.0) Gecko/20100101 Firefox/40.1)。它不起作用..给我一个解决方案。
发布于 2020-04-10 01:35:09
我知道这个迟来的答案,但也许会有人需要它
顺便说一句,我在《颤动》之前也遇到过这个问题。
做完这个戏法后,这对我来说是件好事。
只需在页面加载后尝试对此代码JavaScript求值
像这样
//to load desktop mode
String js =
"document.querySelector('meta[name=\"viewport\"]').setAttribute('content', 'width=1024px, initial-scale=' + (document.documentElement.clientWidth / 1024));";
@override
Widget build(BuildContext context) {
final flutterWebViewPlugin = new FlutterWebviewPlugin();
flutterWebViewPlugin.onProgressChanged.listen((event) {
debugPrint("Progress $event");
//this will make show in desktop mode
flutterWebViewPlugin.evalJavascript(js);
});
return WebviewScaffold(
appBar: AppBar(
title: Text("Desktop Mode"),
),
url: "My Url",
withJavascript: true,
useWideViewPort: true,
displayZoomControls: false,
scrollBar: true,
withZoom: true,
);
}
WebView插件here链接
发布于 2020-07-16 22:02:30
将用户代理参数从null更改为下面提到的值
WebView(
userAgent: "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0",
initialUrl: html,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
发布于 2022-02-18 12:53:30
像这样使用flutter_webview_plugin
final flutterWebviewPlugin = FlutterWebviewPlugin();
@override
void dispose() {
flutterWebviewPlugin.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Material(
type: MaterialType.transparency,
child: WebviewScaffold(
appBar: AppBar(
title: Text('WebView Page'),
),
url: "your url",
userAgent: 'Fake',
clearCookies: false,
clearCache: false,
hidden: true,
appCacheEnabled: true,
supportMultipleWindows: true,
),
);
https://stackoverflow.com/questions/52720983
复制相似问题