关于vue转flutter的信息

flutter跳转原生页面后的穿透问题

现象:

为上杭等地区用户提供了全套网页设计制作服务,及上杭网站建设行业解决方案。主营业务为成都网站建设、网站制作、上杭网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

flutter页面通过present跳转原生页面后,原生页面上的点击会首先响应下面的flutter页面中的内容(比如按钮什么的)。

这是flutter框架一直存在的一个bug。在github上有相关的issue。

原因推测:

推测是flutter对控制器(或者view)加了分类,重写了控制器的点击事件,用来计算是否在对应的点击位置有flutter响应事件。没有的话再扔出去点击事件。

解决方案1:

在原生控制器中,加入点击事件的几个方法的空实现,用以覆盖flutter框架中的实现:

-(void)touchesBegan:(NSSetUITouch * *)touches withEvent:(UIEvent *)event{

}

-(void)touchesMoved:(NSSetUITouch * *)touches withEvent:(UIEvent *)event{

}

-(void)touchesCancelled:(NSSetUITouch * *)touches withEvent:(UIEvent *)event{

}

-(void)touchesEnded:(NSSetUITouch * *)touches withEvent:(UIEvent *)event{

}

让事件不被flutter截获即可。

解决方案2:

直接切换window的根控制器到原生控制器即可。别忘暂时保存flutter控制器。

在返回时再切换回flutter中。

解决方案3:

在flutter跳转到原生页面之前,在flutter中加上一个蒙层,用来隔绝手势往flutter下面的view传递。原生页面返回flutter时再移除这个蒙层。

flutter 与webview (vue)交互

flutter与webview交互

因为web端项目用的是vue框架 按照网上的教程flutter端调用js端方法不管用:

flutter端

web端

后来发现是vue的方法不会暴露给app使用 需要把方法名暴露给window

Flutter之国际化多语言

在说flutter国际化前,不得不提到,在uni-app中支持的Vue-i18n,两者有相似之处,也有差异的地方。

本篇借鉴了三篇热门帖子

Flutter中的国际化:如何写一个多语言的App

Flutter国际化完整例子

Internationalization - Make an Flutter application multi-lingual

只记录根据手机系统语言自动转换app语言

引入后,保存会自动加入安装此依赖

我们新建一个和"/lib"同级别的文件夹"/locale",然后在这个文件夹中新建两个文件,分别为"i18n_en.json" 和" i18n_zh.json"。再在"/lib"文件夹下创建和"main.dart"同级的"translation.dart"和"application.dart"。

  文件夹树现在是这个样子的:

MyApplication

  |

  +- android

  +- build

  +- images

  +- ios

  +- lib

   |

   +-main.dart

   +-translation.dart

   +-application.dart

  +- locale

   |

   +- i18n_en.json

   +- i18n_zh.json

  +- test

在pubspec.yaml继续加入json,引入静态资源

补充:如果需要强制转换的话(我自己没有用到)

flutter和vuejs那个容易学

flutter更容易学,

Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。

Vue前端转Flutter一(环境配置)

(*注:以下仅个人配置过程参考,系统win7-64)

所需软件

vsCode,Android Studio, MuMu模拟器 (直连手机调试的话就不需要了)

配置过程

1、Flutter安装

安装时忘记截图,具体可参考链接 flutter中文网 相关教程+ 百度 ,现在网上教程很多,多踩点坑总会成功的。

2、MuMu模拟器调试时需进行相关配置

(*注:直连手机调试可忽略以下;执行以下操作需要在执行flutter doctor成功后,flutter run执行前)

(1)mumu模拟器端口监听,需要执行

(2)mumu模拟器调试flutter run可能会报错,可以改成,具体原因可直接百度“--enable-software-rendering”

3、如需调试ios端可尝试虚拟机+macOS+xCode

vmware+macOs可参考链接 VMware15安装MacOS系统 ,笔者按照该步骤已安装成功

Flutter vue webview_flutter JS交互

webview加载vue nom run serve 本地网页

JSBridge.dart

JsPreventModel 拦截的Model

vue brdige.js

App.vue里面的调用


网站栏目:关于vue转flutter的信息
文章分享:http://pwwzsj.com/article/hodidc.html