首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用webview获取意外的HTML内容

使用webview获取意外的HTML内容
EN

Stack Overflow用户
提问于 2021-03-28 02:20:58
回答 2查看 93关注 0票数 0

我正在尝试使用flutter webview plugin获取url内容源代码。我写这段代码是为了得到预期的结果,但我不知道为什么这段代码会返回意想不到的一行内容。

我的代码

代码语言:javascript
运行
复制
import 'dart:async';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';

const kAndroidUserAgent =
    'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Mobile Safari/537.36';


class mainController{
  Future getdata() async{
    var data;

    final flutterWebViewPlugin = FlutterWebviewPlugin();

    flutterWebViewPlugin.launch('https://www.instagram.com/picsart/?__a=1', hidden: true, userAgent: kAndroidUserAgent,);
     data =  await flutterWebViewPlugin.evalJavascript("window.document.getElementsByTagName('html')[0].outerHTML;");
    flutterWebViewPlugin.close();
    return data;
  }
}

我得到的输出

代码语言:javascript
运行
复制
I/flutter (21310): "\u003Chtml>\u003Chead>\u003C/head>\u003Cbody>\u003C/body>\u003C/html>"

我所期待的是-

EN

回答 2

Stack Overflow用户

发布于 2021-06-19 21:27:41

我试了很久才得到答案。我找到了一种变通方法。下面是我找到的解决方案。

代码语言:javascript
运行
复制
data =  await flutterWebViewPlugin.evalJavascript("encodeURIComponent(document.documentElement.outerHTML)");
data = Uri.decodeComponent(data);

它所做的是,在引入组件之前用JavaScript对其进行编码。然后,解码dart中的数据。

当我使用webview_flutter插件时,它起作用了。可能它在这里也会起作用。

我知道我来晚了,但为那些可能有同样问题并最终来到这里的人补充答案。

票数 1
EN

Stack Overflow用户

发布于 2021-03-28 02:56:31

这是一个JSON数据馈送,不是一个网页。该插件试图做的是将页面视为网页,这将扰乱JSON数据格式。

按照Flutter食谱:https://flutter.dev/docs/cookbook/networking/fetch-data中的说明使用http

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66834693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档