【问题标题】:Get json from webview从 webview 获取 json
【发布时间】:2021-08-11 14:01:05
【问题描述】:

我有一个 wordpress 网站。我从它的 post rest api url "/wp-json/wp/v2/posts?orderby=date&order=desc" 获取 json 数据。

但对我来说主要问题是该网站使用 Cloudflare Under Attack 模式,因此用户第一次访问时可以看到挑战屏幕。所以如果我尝试在flutter中使用一些http客户端,比如“http”,我就无法获取数据。

所以我试图在开始时加载一个不可见的 webview 并从 webview 加载 json 数据,然后将该数据转换为 json,然后将显示在列表中。

但问题是我无法从 webview 获取 json 数据,因为我是 Flutter 的新手,所以请帮助我。

提前谢谢你。

【问题讨论】:

    标签: json wordpress flutter dart wordpress-rest-api


    【解决方案1】:

    给你一个例子。如果您有页面的字符串内容,您可以启动初始 url Uri.dataFromString 或者如果您有 url,您可以通过它。我可以使用 _controller.evaluateJavascript("document.documentElement.innerHTML") 这个方法来读取 WebView 页面的 html 响应。 webview_flutter: ^1.0.7 使用这个插件

    @override
      Widget build(BuildContext context) {
    
        return Scaffold(
          body: WebView(
            initialUrl: new Uri.dataFromString(widget.d3sc, mimeType: 'text/html').toString(),
    
            onWebViewCreated: (controller) {
              _controller = controller;
            },
            javascriptMode: JavascriptMode.unrestricted,
            gestureNavigationEnabled: true,
            onPageFinished: (_) {
              readResponse();
            },
          )
    
        );
      }
    
      void readResponse() async
      {
        String paymentIdx;
        String conversationIdx;
        String conversationData;
        List<String> liste;
    
        setState(() {
          _controller.evaluateJavascript("document.documentElement.innerHTML").then((value) async {
    
            if(value.contains("name=\"paymentId\"")){
        
       ...........
        ................
      
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多