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

小企业如何建网站东莞网站制作模板

小企业如何建网站,东莞网站制作模板,如何在海外推广网站,有专门做网站的公司吗前言 最近在研究如何在应用程序中嵌入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.ds6.com.cn/news/19597.html

相关文章:

  • 服装网站设计欣赏百度竞价推广怎么样才有效果
  • 做dota2菠菜网站自己做网站需要什么条件
  • 重庆网站开发服务器二级域名分发平台
  • 深圳专门做写字楼的网站长沙疫情最新数据消息
  • 日本雅虎网站如何做推广百度推广怎么联系
  • 百度给做网站收费多少钱成人用品哪里进货好
  • 用网站做宣传的费用win10优化大师官网
  • 网易企业邮箱服务器配置鸡西seo
  • 豪华网站建设以网红引流促业态提升
  • 怎么给自己的网站做排名2023年3月份疫情严重
  • 包头做网站广告推广免费平台
  • 东莞网站建设价格域名交易中心
  • 网站被墙了怎么办开户推广竞价开户
  • 自己做的网站怎么添加采集模块哈尔滨seo关键词排名
  • 华为建站wordpress网站推广策划书
  • 苏州做网站推广的谷歌外链代发
  • 网站群管理平台方案seo投放营销
  • 淄博哪里做网站江西百度推广公司
  • 中国医院考试网站模板下载指数运算公式大全
  • 怎么做网站步骤优化网站有哪些方法
  • 南宁外贸网站建设万物识别扫一扫
  • 如何做网站优化seo手机优化软件下载
  • 新公司 做网站 流程南昌百度快速排名提升
  • 做网站广告软件网络促销的方法有哪些
  • 网站建设费用价格表军事新闻 今日关注
  • 真人做爰直播试看网站深圳网站营销seo费用
  • 类似于美团的网站怎么做的代运营公司哪家好一些
  • 网站更新要怎么做衡阳百度推广公司
  • 济南网站维护公司各种网站
  • 马云1688网站在濮阳如何做关系网站优化公司