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

济南网站开发公司排名企业邮箱购买价格

济南网站开发公司排名,企业邮箱购买价格,个人网页免费域名注册入口,搜索引擎优化简称seo前言 最近在研究如何在应用程序中嵌入Web视图,发现有两个库不错。 一个是官方维护、一个是第三方维护。因为没说特别的需求,就使用了官方库,实现一些简单功能是完全ok的 基本使用 官方文档 https://pub-web.flutter-io.cn/packages/webv…

前言

最近在研究如何在应用程序中嵌入Web视图,发现有两个库不错。
在这里插入图片描述
一个是官方维护、一个是第三方维护。因为没说特别的需求,就使用了官方库,实现一些简单功能是完全ok的

基本使用

官方文档

https://pub-web.flutter-io.cn/packages/webview_flutter

安装

flutter pub add webview_flutter

加载并显示web
可以加载html字符串,也可以直接加载url链接。官方都提供了对应的方法,这里演示加载url

  • 初始化
 late WebViewController webViewController;//初始化void initState() {super.initState();webViewController = WebViewController()..setJavaScriptMode(JavaScriptMode.unrestricted);}
  • 显示
    显示的时候一般需要结合FutureBuilder,比较这是一个异步的过程
FutureBuilder(// 异步方法future: searchNovelFromWeb(),builder: (context, snapshot) {// 等待状态显示的widgetif (snapshot.connectionState == ConnectionState.waiting) {return const Center(child: CircularProgressIndicator(),);//  错误时显示的widget} else if (snapshot.hasError) {return const Text('Error');} else {return snapshot.data ?? const Text('No data');}}))Future<Widget> searchNovelFromWeb() async {Widget res;try {await webViewController.loadRequest(Uri.parse('https://m.bbxxxxxx.com/s?q=凡人修仙'));res = WebViewWidget(controller: webViewController);} catch (error) {res = Text("加载失败:${error.toString()}");print("加载失败:${error.toString()}");}return res;}

在这里插入图片描述
在这里插入图片描述

flutter与web之间的交互

flutter通知web,让web执行某些操作

官方提供了两个方法:runJavaScriptrunJavaScriptReturningResult。后者可以向flutter返回执行结果
比如在网页加载完成后获取到网页源代码

webViewController.setNavigationDelegate(NavigationDelegate(onPageFinished: (url) async {print("页面加载完成:$url");var html = await webViewController.runJavaScriptReturningResult("document.documentElement.innerText;");debugPrint("结果是11:$html", wrapWidth: 1024);}));

在这里插入图片描述

web发生变化后,通知flutter
这块也实现了,但是不太稳定,有时候不能够正常运行

 await webViewController.loadRequest(Uri.parse('https://m.bbxxxxxxxt.com/s?q=凡人修仙'));webViewController.setNavigationDelegate(NavigationDelegate(onPageFinished: (url) async {print("页面加载完成:$url");// 添加监听await webViewController.addJavaScriptChannel('Report',onMessageReceived: (JavaScriptMessage message) {print("收到了消息,是:${message.message}");});// 注入脚本await  webViewController.runJavaScript('''setInterval(() => {let time = new Date().toLocaleTimeString();Report.postMessage(time);},1000)''');}));

在这里插入图片描述

http://www.yayakq.cn/news/866913/

相关文章:

  • 永久打开本网站的微分销平台到底哪个比较好
  • 兰州装修公司口碑排名苏州优化哪家公司好
  • 扬州手机网站建设wordpress手机端网站模板下载
  • 国外免费空间网站申请网站开发pc版与手机版
  • 做网站需要购买网站空间吗营销软文100字
  • 网站建设公司发展理念网站制作添加视频
  • 百度seo公司整站优化知名网络公司
  • 上海企业都用什么网站diy定制软件
  • 昆明网站制作的方法横泉水库建设管理局网站
  • 网站建设合同用交印花税做盗版电影网站后果
  • 百度网站免费优化软件下载图书馆网站建设方案设计论文
  • 做网站 套模板 后端台州本地做网站的
  • 网站制作模版资讯网站 怎样 增强用户粘度
  • 做seo网站优化价格天津建设工程信息网如何投标报名
  • 论述电子商务网站建设的流程上海品牌全案设计公司
  • 西安网站建设麦欧科技网页设计字体颜色代码
  • 营销型企业网站建设应遵守的原则手机网站带后台源代码
  • 网站建设费记到什么科目北京建设工程交易信息网官网
  • 鹿泉市建设局网站大型网站团队人数
  • 填写网站信息门户网站解决方案
  • 网站制作 服务如何制作一个自己的网站?
  • 网站建设运营合作合同安徽设计公司排名
  • 网站建设流程代理商招投标网站
  • 部门网站建设目的青岛网上房地产官网
  • 西安医院网站建设网站推广实施计划
  • 网站建设纟金手指下拉壹陆wordpress循环分类
  • 做网站个人怎么签合同小榄网站设计
  • 广西网站建设流程全景网站模版
  • 沈阳网站推广有什么技巧网络公司名字大全集
  • 怎样做一个好的网站网站备案号怎么查