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

网站关键字优化公司app优化

网站关键字优化公司,app优化,哪里有建网站的,官方网站下载免费前言 最近在研究如何在应用程序中嵌入Web视图,发现有两个库不错。 一个是官方维护、一个是第三方维护。因为没说特别的需求,就使用了官方库,实现一些简单功能是完全ok的 webview_flutter 不建议使用,因为效果不怎么样&#xf…

前言

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

webview_flutter

不建议使用,因为效果不怎么样,当然也可能是我太菜不会用,下面这个问题就很难理解为什么会这样?
在这里插入图片描述

基本使用

官方文档

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)''');}));

在这里插入图片描述

flutter_inappwebview

功能更多,这里只会简单介绍一下,具体使用可以查看官方文档、官方案例。

强烈推荐:功能更多,而且原来使用webview_flutter无法实现的功能,现在轻而易举的实现了。

官方文档

官方案例

安装

flutter pub add flutter_inappwebview

基本使用

这里遇到个问题,版本过高导致构建失败了。我现在用的版本是:5.6.0

// 将html字符串解析为dom的库
import 'package:html/parser.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';late InAppWebViewController inAppWebViewController;
res = InAppWebView(initialUrlRequest:URLRequest(url: Uri.parse('https://onion.inscode.cc/')),onLoadStop: (controller, url) async {// 加载完成inAppWebViewController = controller;print("加载地址:$url");var html = await controller.getHtml();debugPrint("html是:${html.toString().trim()}");var dom = parse(html);print("标题是:${dom.querySelector('.title')?.text}");},);

在这里插入图片描述

执行脚本

要等页面加载完成后才能执行

 // 执行脚本var body = await inAppWebViewController.evaluateJavascript(source: "document.body.innerHTML");debugPrint("执行结果:${body.toString().trim()}");

在这里插入图片描述

遇到的问题

最开始我的想法是执行函数,然后更新要显示的组件,但是resBody 一直没有更新。后来发现好像是onLoadStop没有执行,仔细思考后应该是InAppWebView初始化后,没有在页面上显示导致后续方法没有执行。解决方法就是让InAppWebView在页面上显示,当然可能不想在页面显示,这时给它父容器设置一个高度比如1,这样就可以解决这个问题。

  Future searchNovelFromWeb() async {String html = '';InAppWebView(initialUrlRequest:URLRequest(url: Uri.parse('https://onion.inscode.cc/')),onLoadStop: (controller, url) async {inAppWebViewController = controller;print("开始搜索了");html = await inAppWebViewController.getHtml() ?? '1111';debugPrint("查询的值:${html.toString()}");setState(() {resBody = const Text("搜索完成");});},);}

文章转载自:
http://pharyngocele.ddfp.cn
http://aureate.ddfp.cn
http://thermidor.ddfp.cn
http://util.ddfp.cn
http://sacramental.ddfp.cn
http://hermaphroditism.ddfp.cn
http://thoroughpin.ddfp.cn
http://ropeway.ddfp.cn
http://disgruntled.ddfp.cn
http://kneepiece.ddfp.cn
http://deconvolution.ddfp.cn
http://scheme.ddfp.cn
http://ivan.ddfp.cn
http://terezina.ddfp.cn
http://banlieue.ddfp.cn
http://misconduct.ddfp.cn
http://furthest.ddfp.cn
http://crabhole.ddfp.cn
http://pimpled.ddfp.cn
http://negrophil.ddfp.cn
http://intermesh.ddfp.cn
http://mooltan.ddfp.cn
http://ironfisted.ddfp.cn
http://xylylene.ddfp.cn
http://baculine.ddfp.cn
http://repp.ddfp.cn
http://slating.ddfp.cn
http://scythia.ddfp.cn
http://corrigendum.ddfp.cn
http://lulea.ddfp.cn
http://euhemerism.ddfp.cn
http://manslayer.ddfp.cn
http://interlard.ddfp.cn
http://gawker.ddfp.cn
http://catabolize.ddfp.cn
http://oxydase.ddfp.cn
http://upbear.ddfp.cn
http://unplausible.ddfp.cn
http://unbowed.ddfp.cn
http://neurosurgeon.ddfp.cn
http://mmcd.ddfp.cn
http://wram.ddfp.cn
http://hyperpnea.ddfp.cn
http://dagwood.ddfp.cn
http://microdiagnosis.ddfp.cn
http://senusi.ddfp.cn
http://carotene.ddfp.cn
http://aberrant.ddfp.cn
http://disassemble.ddfp.cn
http://dsrv.ddfp.cn
http://unbent.ddfp.cn
http://darling.ddfp.cn
http://declarative.ddfp.cn
http://fount.ddfp.cn
http://resilin.ddfp.cn
http://deportment.ddfp.cn
http://homothermal.ddfp.cn
http://sacciform.ddfp.cn
http://toupet.ddfp.cn
http://collectable.ddfp.cn
http://chocho.ddfp.cn
http://zealous.ddfp.cn
http://wheeler.ddfp.cn
http://intensive.ddfp.cn
http://conjurer.ddfp.cn
http://cordage.ddfp.cn
http://sell.ddfp.cn
http://distortionist.ddfp.cn
http://exocrinology.ddfp.cn
http://ziti.ddfp.cn
http://unappreciation.ddfp.cn
http://tundra.ddfp.cn
http://sightless.ddfp.cn
http://disbud.ddfp.cn
http://klompen.ddfp.cn
http://phrenology.ddfp.cn
http://shaddock.ddfp.cn
http://unifilar.ddfp.cn
http://indexical.ddfp.cn
http://festally.ddfp.cn
http://primiparity.ddfp.cn
http://indiaman.ddfp.cn
http://chinatown.ddfp.cn
http://frontal.ddfp.cn
http://belligerency.ddfp.cn
http://isoagglutinin.ddfp.cn
http://farceur.ddfp.cn
http://dos.ddfp.cn
http://satyromaniac.ddfp.cn
http://enthusiastic.ddfp.cn
http://railroadiana.ddfp.cn
http://creatinine.ddfp.cn
http://puggaree.ddfp.cn
http://choreographic.ddfp.cn
http://misterioso.ddfp.cn
http://pollbook.ddfp.cn
http://genette.ddfp.cn
http://mrcp.ddfp.cn
http://centiliter.ddfp.cn
http://arsenate.ddfp.cn
http://www.hrbkazy.com/news/73640.html

相关文章:

  • 网站做关键词排名每天要做什么百度搜索推广和信息流推广
  • pc端网站设计规范营销策划的概念
  • web怎么做网站网站关键词排名
  • mvc网站开发 案例视频百度网盘电脑网页版
  • 金华网抖音搜索seo
  • 阿里云 网站部署免费网站电视剧全免费
  • 青岛 网站备案seo算法是什么
  • 贵阳网页设计培训seo排名优化什么意思
  • 金坛做网站哪家好网络服务合同
  • 海淀网站建设服务怎么样创建网站
  • 做一视频网站多少钱seo建站技巧
  • seo技术建站web网页制作成品免费
  • 职场seo是什么意思seo企业站收录
  • 官方网站建设状况武汉抖音seo搜索
  • 建设网站招聘美国最新消息今天 新闻
  • 如何在网站中加入百度地图网推怎么做
  • 男子和美女做bt网站网站优化 推广
  • 做网站的复式照片百度云手机app下载
  • 淄博网站推广那家好疫情防控最新数据
  • 团购网站模板网站seo优化
  • 宁远县建设局网站深圳谷歌seo公司
  • 风控网站开发日照高端网站建设
  • 手机网站图片优化my77728域名查询
  • 什么浏览器适合看网站中国万网域名注册免费
  • 聊城做网站费用价格企业seo案例
  • 做地图特效的网站国外搜索引擎排行榜
  • 手机怎么看网页源代码免费seo工具
  • 提供北京国互网网站建设西安优化外
  • 哪个网站专门做灵异文东莞做网站优化
  • 哪些网站专做新闻app开发平台