1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android 隐藏webview地址栏 flutter - 在Flutter Webview中隐藏Url引用 - SO中文参考 - www.soinside.com...

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

时间:2020-05-07 13:50:57

相关推荐

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

flutter_inappwebview:

git:

url: /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(),

);

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。