flutter_inappwebview:

git:

url: https://github.com/pichillilorenzo/flutter_inappwebview.git

ref: master

工作演示

完整代码import 'package:flutter/material.dart';

import 'package:flutter_inappwebview/flutter_inappwebview.dart';

class InAppWebViewExampleScreen extends StatefulWidget {

@override

_InAppWebViewExampleScreenState createState() =>

new _InAppWebViewExampleScreenState();

}

class _InAppWebViewExampleScreenState extends State {

InAppWebViewController webView;

String url = "";

double progress = 0;

@override

void initState() {

super.initState();

}

@override

void dispose() {

super.dispose();

}

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(title: Text("InAppWebView")),

//drawer: myDrawer(context: context),

body: SafeArea(

child: Column(children: [

Container(

padding: EdgeInsets.all(20.0),

child: Text(

"CURRENT URL\n${(url.length > 50) ? url.substring(0, 50) + "..." : url}"),

),

Container(

padding: EdgeInsets.all(10.0),

child: progress < 1.0

? LinearProgressIndicator(value: progress)

: Container()),

Expanded(

child: Container(

margin: const EdgeInsets.all(10.0),

decoration:

BoxDecoration(border: Border.all(color: Colors.blueAccent)),

child: InAppWebView(

initialUrl: "https://flutter.dev/", //"https://flutter.dev/",

//initialFile: "assets/index.html",

initialHeaders: {},

initialOptions: InAppWebViewWidgetOptions(

crossPlatform: InAppWebViewOptions(

debuggingEnabled: true,

)

),

onWebViewCreated: (InAppWebViewController controller) {

webView = controller;

},

onLoadStart: (InAppWebViewController controller, String url) {

print("onLoadStart $url");

setState(() {

this.url = url;

});

},

onLoadStop:

(InAppWebViewController controller, String url) async {

print("onLoadStop $url");

setState(() {

this.url = url;

});

/*var origins = await WebStorageManager.instance().android.getOrigins();

for (var origin in origins) {

print(origin);

print(await WebStorageManager.instance().android.getQuotaForOrigin(origin: origin.origin));

print(await WebStorageManager.instance().android.getUsageForOrigin(origin: origin.origin));

}

await WebStorageManager.instance().android.deleteAllData();

print("\n\nDELETED\n\n");

origins = await WebStorageManager.instance().android.getOrigins();

for (var origin in origins) {

print(origin);

await WebStorageManager.instance().android.deleteOrigin(origin: origin.origin);

}*/

/*var records = await WebStorageManager.instance().ios.fetchDataRecords(dataTypes: IOSWKWebsiteDataType.ALL);

for(var record in records) {

print(record);

}

await WebStorageManager.instance().ios.removeDataModifiedSince(dataTypes: IOSWKWebsiteDataType.ALL, date: DateTime(0));

print("\n\nDELETED\n\n");

records = await WebStorageManager.instance().ios.fetchDataRecords(dataTypes: IOSWKWebsiteDataType.ALL);

for(var record in records) {

print(record);

}*/

},

onProgressChanged:

(InAppWebViewController controller, int progress) {

setState(() {

this.progress = progress / 100;

});

},

/*onUpdateVisitedHistory: (InAppWebViewController controller, String url, bool androidIsReload) {

print("onUpdateVisitedHistory $url");

setState(() {

this.url = url;

});

},*/

),

),

),

ButtonBar(

alignment: MainAxisAlignment.center,

children: [

RaisedButton(

child: Icon(Icons.arrow_back),

onPressed: () {

if (webView != null) {

webView.goBack();

}

},

),

RaisedButton(

child: Icon(Icons.arrow_forward),

onPressed: () {

if (webView != null) {

webView.goForward();

}

},

),

RaisedButton(

child: Icon(Icons.refresh),

onPressed: () {

if (webView != null) {

webView.reload();

}

},

),

],

),

])));

}

}

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

// This widget is the root of your application.

@override

Widget build(BuildContext context) {

return MaterialApp(

title: 'Flutter Demo',

theme: ThemeData(

primarySwatch: Colors.blue,

),

home: InAppWebViewExampleScreen(),

);

}

}

android 隐藏webview地址栏,flutter - 在Flutter Webview中隐藏Url引用 - SO中文参考 - www.soinside.com...相关推荐

  1. 隐藏网络计算机,XP电脑如何在网络中隐藏自己的计算机名称?

    当我们的电脑处于局域网下时,别人可以通过网络查看到所有的电脑,如果不想让别人在网上邻居中看到自己的计算机,可以设置把自己的计算机名称在网上邻居里隐藏.那么在XP系统中,如何进行这个操作呢?下面,就一起 ...

  2. 5种css隐藏元素的方法_在CSS中隐藏元素的10种方法

    5种css隐藏元素的方法 There are multiple ways to hide an element in CSS, but they differ in the way they affe ...

  3. android layout 工具栏,android - 滚动时CollapsingToolbarLayout并隐藏工具栏 - SO中文参考 - www.soinside.com...

    我正在尝试使用CoordinatorLayout和CollapsingToolbarLayout创建一些组合布局. 在第一个状态,当我们在最顶层的页面上,并且还没有滚动时,我希望工具栏如下所示(是的, ...

  4. android点击textview后选择,android - 单击后,ClickableSpan TextView保持选中状态 - SO中文参考 - www.soinside.com...

    我正在使用以下代码使我的TextView看起来像一个链接,当用户点击它时,我显示一个AlertDialog.但是在用户离开对话框后文本保持选中状态并且看起来很难看. TextView terms = ...

  5. php 未填写时隐藏提交按钮,php - [单击提交按钮时隐藏html,回显结果留在同一页面上,电子邮件表单结果示例提供 - SO中文参考 - www.soinside.com...

    我搜索了基本的解释和示例,该示例和示例说明了如何使用同一基本php隐藏我的html表单" onsubmit",同时保持在同一页面上.我还需要通过电子邮件发送表格结果.我在这里和那里 ...

  6. android 定位 广播,android - 如何触发广播接收器在GPS开启/关闭? - SO中文参考 - www.soinside.com...

    如何触发广播接收器在GPS开启/关闭? 问题描述 投票:35回答:5 public class BootReceiver extends BroadcastReceiver { @Override p ...

  7. android新材料设计,android - 如何实现新材料BottomAppBar为BottomNavigationView - SO中文参考 - www.soinside.com...

    解决了 基本上,而不是试图迫使菜单的资源,我需要的布局,我用这个方法,而不是,我只是把使用"空"元素作为@dglozano建议BottomAppBar内的LinearLayout. ...

  8. android数据截取字符串数组,android - 从Android Studio中的字符串数组获取特定字符串 - SO中文参考 - www.soinside.com...

    我有一个字符串数组(在strings.xml中,我在其中收集所有游戏) ... Fortnite CounterStrike: Global Offensive Minecraft Minigames ...

  9. android.mk if else,gradle - 如何在Android Studio中使用我自己的Android.mk文件 - SO中文参考 - www.soinside.com...

    [我正在Android.mk文件中定义一些变量(我正在为编译器传递一些标志),但是每次构建项目时,Android.mk都会被覆盖.我假设Gradle是负责任的,我应该去那里看看吗? 如何使用我自己的A ...

最新文章

  1. python线程池阻塞队列_福利又来啦!python多线程进阶篇
  2. tensorflow LSTM + CTC实现端到端OCR
  3. asp.net 2.0小TIPS两则
  4. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...
  5. python 城市地图_python – 使用Basemap获取城市地图的最佳方式?
  6. C51单片机其他名词英文全称
  7. 电脑版企业微信_靠谱的企业客户管理系统电脑版下载
  8. 在Visual Studio Code里进行Java开发
  9. 如果今天设计了Java:同步接口
  10. php实现中英文网站插件,php官网英文自动跳中文
  11. linux bochs 网卡,Bochs 在Windows和Linux下配置对比
  12. kali2020进入单模式_出租车使用“滴滴”平台 司机希望恢复抢单模式 滴滴出行有回应...
  13. Spring Data Jpa出现Not supported for DML operations
  14. LINUX 下 一些常用的信息显示命令:
  15. maple 2022
  16. 小滴课堂-学习笔记:(1)JAVASE课程
  17. 联想m7400 linux驱动下载,联想M7400W驱动-联想M7400W打印机驱动下载 v1.6.0.0官方版--pc6下载站...
  18. 微信 Windows 版本干了件大事!
  19. BugkuCTF 部分题解(随缘更新)
  20. JS 怎么控制 checkbox 选中的问题

热门文章

  1. Python matplotlib 和PIL
  2. NFS问题:clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
  3. stm32系统滴答定时器使用
  4. Linux C++多线程同步的四种方式
  5. Ubuntu下使用VSCode的launch.json及tasks.json编写
  6. makefile文件的一些解读
  7. java 时分秒比较_小学三年级数学上册《时分秒》一课一练,含答案,巩固此知识点!...
  8. 数据库中什么是主键,什么是外键?
  9. JavaScript不区分 '
  10. 【内网安全】域横向PTHPTKPTT哈希票据传递