如何在Flutter中使用MethodChannel控制网络视图

问题描述

我正在用flutter集成Webview,有两个选项,第一个是使用MethodChannel,第二个是使用WebView小部件,在我的webview中,当我在flutter中进行集成时,我有一个步进器可在路线之间导航WebViewController和WebView小部件可以实现这种导航,但是由于X的原因,我需要使用MethodChannel实现相同的导航。问题是,有什么办法吗?我要控制的是后退按钮的网页视图。

使用MethodChannel启动Webview的功能

static void openWebActivity(String url,String title,{String token}) async {
    const platform = const MethodChannel("native_interaction");
    try {
      await platform.invokeMethod(
          "startWebActivity",{"url": url,"title": title,"token": token});
    } on PlatformException catch (e) {
      print(e.message);
    }
}

带有WebView小部件的Webview

import 'dart:async';

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

class SiniestroWebView extends StatefulWidget {
  final String uri;
  SiniestroWebView(this.uri);

  @override
  _SiniestroWebViewState createState() => _SiniestroWebViewState();
}

WebViewController controllerGlobal;

class _SiniestroWebViewState extends State<SiniestroWebView> {
  @override
  Widget build(BuildContext context) {
    return new WillPopScope(
      onWillPop: _goBack,child: new Scaffold(
        body: new SafeArea(
          child: new WebView(
            initialUrl: widget.uri,javascriptMode: JavascriptMode.unrestricted,onWebViewCreated: (WebViewController webViewController) {
              controllerGlobal = webViewController;
            },),);
  }

  Future<bool> _goBack() async {
    var value = await controllerGlobal.canGoBack();
    if (value) {
      print("onwill goback");
      controllerGlobal.goBack();
      return Future.value(false);
    } else {
      return Future.value(true);
    }
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...