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

微网站公司seo搜索引擎优化费用

微网站公司,seo搜索引擎优化费用,推广公司属于什么公司,平顶山市住房和城乡建设局网站文章目录 为什么要调用js1. flutter-web1. 引入js web/index.html2. 创建工具js web/CryptoEnc.js3. 创建对应的lib/js/js_interop.dart4. 由于引入的js是针对web平台的,所以引入需要做引入处理5. 使用 2. Android1. 引入依赖2. index.html3. dart引用 为什么要调用…

文章目录

      • 为什么要调用js
      • 1. flutter-web
        • 1. 引入js web/index.html
        • 2. 创建工具js web/CryptoEnc.js
        • 3. 创建对应的lib/js/js_interop.dart
        • 4. 由于引入的js是针对web平台的,所以引入需要做引入处理
        • 5. 使用
      • 2. Android
        • 1. 引入依赖
        • 2. index.html
        • 3. dart
        • 引用

为什么要调用js

JavaScript拥有庞大且成熟的工具生态系统

1. flutter-web

1. 引入js web/index.html
 <!-- Add the required JS libraries --><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.2.0/crypto-js.min.js" integrity="sha512-a+SUDuwNzXDvz4XrIcXHuCf089/iJAoN4lmrXJg18XnduKK6YlDHNRalv4yd1N40OKI80tFidF+rqTFKGPoWFQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.2.0/md5.min.js" integrity="sha512-ENWhXy+lET8kWcArT6ijA6HpVEALRmvzYBayGL6oFWl96exmq8Fjgxe2K6TAblHLP75Sa/a1YjHpIZRt+9hGOQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script><!-- Register the js file where the logic is written --><script src="CryptoEnc.js" type="application/javascript"></script>
2. 创建工具js web/CryptoEnc.js
function CryptoEnc() {}CryptoEnc.prototype.encrypt = function(toEncObj){var toEnc = toEncObj.value;var encrypted = CryptoJS.MD5(toEnc);return encrypted;
}CryptoEnc.prototype.testFunc = function(toEncObj2){var toEnc = toEncObj2.value;return "========bbbbtestFunc"+toEnc;
}
3. 创建对应的lib/js/js_interop.dart
// #1
()
library js_interop;// The above two lines are required
import 'package:js/js.dart';// #2
()
class CryptoEnc {external CryptoEnc();external String encrypt(ToEncrypt toEncrypt);external String testFunc(ToEncrypt2 toEncrypt2);
}// #3
()

class ToEncrypt {external String get value;external factory ToEncrypt({String value});
}
()

class ToEncrypt2 {external String get value;external factory ToEncrypt2({String value});
}
4. 由于引入的js是针对web平台的,所以引入需要做引入处理
///encrypt.dart
class ToEncrypt {final String value;ToEncrypt({required this.value,});
}class ToEncrypt2 {final String value;ToEncrypt2({required this.value,});
}class CryptoEnc {CryptoEnc();String encrypt(ToEncrypt toEncrypt) {// We are not implementing any encryption for mobile for now.// This is just for demonstration.throw UnimplementedError();}String testFunc(ToEncrypt2 toEncrypt) {// We are not implementing any encryption for mobile for now.// This is just for demonstration.throw UnimplementedError();}
}///export_encrypt.dart
export 'encrypt.dart' if (dart.library.js) 'js_interop.dart';
5. 使用
   var encVal = CryptoEnc().encrypt(ToEncrypt(value: "aaaaaa",),);var encVal2 = CryptoEnc().testFunc(ToEncrypt2(value: "cccc",));print(encVal);print("testFunc=$encVal2");

2. Android

1. 引入依赖
webview_flutter: ^4.4.2
2. index.html
<!DOCTYPE html>
<html>
<head><title>Test js dart</title></head>
<body>
<script>function inputClick (url) {console.log('inputClick=>'+url);}function playUrl(url) {console.log('playUrl=>'+url);}function startPlay() {console.log('startPlay');}function postMsg() {console.log('postMsg');//向dart发送消息Print.postMessage('postMsg');}</script>
</body>
</html>
3. dart
import 'package:flutter/material.dart';
import 'package:tvboxstudy/log_extensions.dart';
import 'package:webview_flutter/webview_flutter.dart';class LocalHtmlWebView extends StatefulWidget {const LocalHtmlWebView({super.key});LocalHtmlWebViewState createState() => LocalHtmlWebViewState();
}class LocalHtmlWebViewState extends State<LocalHtmlWebView> {late String localHtmlContents;late WebViewController controller;ValueNotifier<bool> isShowLoading = ValueNotifier(true);void initState() {super.initState();initController();loadLocalHtml();_registerJavascriptChannel();}void runJS(int type) {if (type == 1) {controller.runJavaScript('inputClick();',);} else if (type == 2) {controller.runJavaScript('startPlay();',);}else if (type == 3) {controller.runJavaScript('postMsg();',);} else if (type == 4) {controller.runJavaScript("playUrl('https://media.w3.org/2010/05/sintel/trailer.mp4');",);}}void _registerJavascriptChannel() {controller.addJavaScriptChannel('Print',onMessageReceived: (JavaScriptMessage message) {//收到消息做相应的处理print("onMessageReceived=>${message.message}");},);}void initController() {controller = WebViewController()..setJavaScriptMode(JavaScriptMode.unrestricted)..setBackgroundColor(Colors.transparent)..setJavaScriptMode(JavaScriptMode.unrestricted)..setNavigationDelegate(NavigationDelegate(onProgress: (int progress) {"progress=$progress".log();if (progress == 100) {isShowLoading.value = false;}},onPageStarted: (String url) {},onPageFinished: (String url) {controller.runJavaScriptReturningResult('document.body.scrollHeight').then((value) {"scrollHeight=>$value".log();});},onWebResourceError: (WebResourceError error) {},onNavigationRequest: (NavigationRequest request) {if (request.url.startsWith('https://www.youtube.com/')) {return NavigationDecision.prevent;}return NavigationDecision.navigate;},),);}void loadLocalHtml() async {controller.loadFlutterAsset('assets/www/player/index2.html');}Widget build(BuildContext context) {return Scaffold(body: Column(children: [Row(children: [TextButton(onPressed: (){runJS(1);}, child: Text("inputClick")),TextButton(onPressed: (){runJS(2);}, child: Text("startPlay")),TextButton(onPressed: (){runJS(3);}, child: Text("postMsg")),TextButton(onPressed: (){runJS(4);}, child: Text("playUrl")),],),Expanded(child: Stack(children: [WebViewWidget(controller: controller,),ValueListenableBuilder(valueListenable: isShowLoading,builder: (BuildContext context, bool value, Widget? child) {return isShowLoading.value? const Center(child: CircularProgressIndicator(color: Colors.white,)): const SizedBox.shrink();},)],),),],),);}
}
引用

Utilizing JS Library for Flutter Web

http://www.mmbaike.com/news/95841.html

相关文章:

  • 网站设计 术语近10天的时政新闻
  • 网络规划设计师通过率多少网络舆情优化公司
  • php网站开发软件语言如何制作自己的网站
  • 做301到别人网站百度热搜关键词排名优化
  • 公司做网站域名的好处优化资讯
  • 泉州网站优化潍坊网站建设解决方案
  • 访问阿里云主机网站seo的中文含义是什么意思
  • 地方门户网站建设要求百度公司推广
  • 金华建设网站重庆seo软件
  • 建设体育用品网站分析潍坊关键词优化软件
  • 常熟的彩钢板 中企动力做的网站站长平台百度
  • 免费毕业设计的网站建设苏州百度推广排名优化
  • 使用iframe做网站人工智能培训班收费标准
  • 如何在网站后台做超链接到文档怎么样优化网站seo
  • 做网站交互效果用什么软件优化设计单元测试卷
  • 怎样做网站教程美橙互联建站
  • 甘肃做网站网站seo快速优化技巧
  • 那些网站做批发云优化软件
  • 风险的网站怎么出现10000个免费货源网站
  • 西安便宜做网站app开发公司排名
  • 济南网站建设 力选聚搜网络a站
  • 不用写代码做网站什么是搜索引擎竞价推广
  • wordpress wp_list_pages函数seo推广外包
  • 网站设计模板旅游景点11页西安网站开发制作公司
  • 怎样用西瓜影音做网站推广代理平台登录
  • 网站建设报价明细表seo教学培训
  • 番禺人才网最新司机招聘东莞seo报价
  • seo优化排名易下拉程序企业seo优化
  • 网站建设首选易网宣东莞网站排名推广
  • 上海东方网首页长沙seo优化