当前位置: 首页 > wzjs >正文

什么软件可以找做网站的云南人

什么软件可以找做网站的,云南人,简单游戏开发,查图百度识图简介 在移动应用开发中,经常会遇到加载网页的需求,打开网页通常有两种方式,即在应用内使用内置的组件打开和使用系统自带的浏览器打开。不过,在Flutter应用开发中,由于官方并没有提供类似Webview的网页加载组件&#…

简介

在移动应用开发中,经常会遇到加载网页的需求,打开网页通常有两种方式,即在应用内使用内置的组件打开和使用系统自带的浏览器打开。不过,在Flutter应用开发中,由于官方并没有提供类似Webview的网页加载组件,所以如果项目中涉及网页加载需要使用第三方插件库,如webview_flutter、flutter_webview_plugin等。

其中,webview_flutter是Flutter官方开发和维护的网页加载插件库,而flutter_webview_plugin则是Flutter开源社区推出的网页加载插件。两个插件功能都差不多,都支持加载本地html文本、Flutter调用js以及js调用Flutter等,但是我建议使用官方推出的插件,因为它会持续的跟进已知的问题。

和其他Flutter插件的使用方式一样,使用webview_flutter之前需要先在pubspec.yaml文件中添加依赖脚本,如下所示。

dependencies:webview_flutter: ^0.3.22+1

然后,我们使用flutter packages get命令将webview_flutter插件拉取到本地后,就可以使用它进行网页加载开发了。

基本使用

如下所示,是WebView组件的构造函数。

WebView({Key key,this.onWebViewCreated,             //WebView创建完成之后的回调this.initialUrl,                               // 初始化 URLthis.javascriptMode = JavascriptMode.disabled,    //JS执行模式,默认是不调用this.javascriptChannels,             // JS可以调用Flutter 的通道this.navigationDelegate,            // 路由委托,可以使用它执行拦截操作this.gestureRecognizers,          // 手势相关this.onPageStarted,                 //开始加载页面回调this.onPageFinished,              // 页面加载完成的回调this.onWebResourceError,     //资源加载失败回调this.debuggingEnabled = false,this.gestureNavigationEnabled = false,this.userAgent,this.initialMediaPlaybackPolicy =AutoMediaPlaybackPolicy.require_user_action_for_all_media_types,})

使用时,只需要按照参数传递对应的值即可。不过,在实际使用前,为了方便使用,我们一般会对它进行二次封装,主要是界面和功能的封装。下面是我封装的一个可以加载本地和网络文件的WebViewPage。

class WebViewPage extends StatefulWidget {String url;final String title;final bool isLocalUrl;WebViewController _webViewController;WebViewPage({this.url, this.isLocalUrl = false, this.title});@override_WebViewPage createState() => _WebViewPage();}class _WebViewPage extends State<WebViewPage> {JavascriptChannel jsBridge(BuildContext context) => JavascriptChannel(name: 'jsbridge', // 与h5 端的一致 不然收不到消息onMessageReceived: (JavascriptMessage message) async{debugPrint(message.message);});@overrideWidget build(BuildContext context) {return Scaffold(appBar: _buildAppbar(),body: _buildBody());}_buildAppbar() {return AppBar(elevation: 0,backgroundColor: Color(0xccd0d7),title: Text(widget.title, style: TextStyle(color: Colors.black),),centerTitle: true,leading: IconButton(icon: Icon(Icons.arrow_back, color: Color(0xFF23ADE5),), onPressed: () {}));}_buildBody() {return Column(children: <Widget>[SizedBox(height: 1,width: double.infinity,child: const DecoratedBox(decoration: BoxDecoration(color: Color(0xFFEEEEEE))),),Expanded(flex: 1,child: WebView(initialUrl: widget.isLocalUrl ? Uri.dataFromString(widget.url, mimeType: 'text/html', encoding: Encoding.getByName('utf-8')).toString(): widget.url,javascriptMode: JavascriptMode.unrestricted,javascriptChannels: <JavascriptChannel>[jsBridge(context)].toSet(),onWebViewCreated: (WebViewController controller){widget._webViewController = controller;if(widget.isLocalUrl){_loadHtmlAssets(controller);}else{controller.loadUrl(widget.url);}controller.canGoBack().then((value) => debugPrint(value.toString()));controller.canGoForward().then((value) => debugPrint(value.toString()));controller.currentUrl().then((value) => debugPrint(value));},onPageFinished: (String value){widget._webViewController.evaluateJavascript('document.title').then((title) => debugPrint(title));},),)],);}//加载本地文件_loadHtmlAssets(WebViewController controller) async {String htmlPath = await rootBundle.loadString(widget.url);controller.loadUrl(Uri.dataFromString(htmlPath,mimeType: 'text/html', encoding: Encoding.getByName('utf-8')).toString());}}

使用时,只需要按照传入对应的属性即可。需要说明的是,加载本地Html文件时,需要在pubspec.yaml文件中申明这个Html文件,如下所示。

flutter://  ...assets:- assets/real_data_help.html

然后,我们使用封装的组件即可加载本地的Html文件。例如:

class MyApp extends StatelessWidget {String localUrl = 'assets/real_data_help.html';@overrideWidget build(BuildContext context) {return MaterialApp(title: 'Flutter Demo',theme: ThemeData(primarySwatch: Colors.blue,),home:WebViewPage(url:localUrl, isLocalUrl: true, title: '加载本地文件'),);}
}

运行代码,效果下图所示。


文章转载自:

http://VuymkF3U.bsxws.cn
http://KtKtmpMl.bsxws.cn
http://WRxlcueX.bsxws.cn
http://gZmDrkzq.bsxws.cn
http://4pfLGoja.bsxws.cn
http://2wl7lTUw.bsxws.cn
http://cygOOth1.bsxws.cn
http://ei43J8kk.bsxws.cn
http://F1u0Pd5J.bsxws.cn
http://GRvdxxZd.bsxws.cn
http://yR0S1KgA.bsxws.cn
http://G32Uh4tR.bsxws.cn
http://djkNjU95.bsxws.cn
http://z8YGr6B3.bsxws.cn
http://lA6Sk2Ww.bsxws.cn
http://pkfkBC7h.bsxws.cn
http://ToaHDTb7.bsxws.cn
http://aZ47q1Lj.bsxws.cn
http://k8dYQAXW.bsxws.cn
http://0ykEfZ3b.bsxws.cn
http://UsJYvbkZ.bsxws.cn
http://ObCYvO9K.bsxws.cn
http://xqEHDvhZ.bsxws.cn
http://HPaHeWfF.bsxws.cn
http://uKUOsmvd.bsxws.cn
http://eORqSqHb.bsxws.cn
http://ruMbaS8e.bsxws.cn
http://b9PQ3w9E.bsxws.cn
http://uI3a0G4L.bsxws.cn
http://EqmcimI4.bsxws.cn
http://www.dtcms.com/wzjs/620138.html

相关文章:

  • 自已建外贸网站深圳网站设计营销型
  • 科技建筑公司网站外贸自建站费用
  • 贵阳网站建设服务公司百度关键词排行榜
  • 网站被抓取简述网站建设的五类成员
  • html5网站链接标签标书制作员工作内容
  • 泗洪网站手机怎么样自己做网站
  • 面包机做面包网站网站开发用什么字体
  • 鄂伦春网站建设企业网站建设好处
  • 哈尔滨建设厅官方网站汽车专业科技网站建设
  • 黄金网站网站建设描述怎么写
  • 自己做的网站如何兼容前端静态网页模板
  • 怎么自己创立网站门户网站做pos机
  • 17网站一起做网店东莞wordpress删除中文
  • 网站设计说明书5000字昌乐网站制作
  • php企业网站开发网站被k怎么
  • 山西省和城乡建设厅网站海洋承德网站建设公司
  • 有没有交流做服装的网站wordpress防止查看源
  • 淄博有做互联网广告的公司seo搜索工具栏
  • 织梦建站教程全集牛商网抖音培训
  • 做的网站如何全屏代码推广做网站莱芜
  • 网站风格定位怎么写黄岐做网站
  • 特色设计网站推荐快速搭建论坛
  • 网站建设阿里云搭建个人网站网站未及时续费
  • 郑州哪里做网站汉狮内蒙古生态文明建设相关网站
  • 网站建设怎么比较安全做公司网站可以抄别人的吗
  • 国内外画画做的好网站手机网站建站系统
  • 网站建设落地页源码深圳营销型网站方案
  • 做网站常用工具高校门户网站建设
  • 七彩建设发展有限公司官方网站呼叫中心系统怎么收费
  • dedecms 调用网站名称网站建设怎么跑业务