快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

flutter自动跳转的简单介绍

Android & Flutter 相互跳转

本文中native和flutter的跳转是借助于咸鱼的FlutterBoost和ARouter框架实现的。

我们提供的服务有:成都网站建设、成都网站制作、微信公众号开发、网站优化、网站认证、灵台ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的灵台网站制作公司

Sync Now...

flutterBoost中需要给每个页面定义一个router_path,然后根据router_path找到对应页面再跳转。

在Application的onCreate中初始化

android jump to flutter

flutter jump to android

flutter 创建页面、跳转动画

本文演示flutter创建 page1 和 page2 两个页面,并且页面之间跳转添加动画

Flutter跳转到原生iOS、Android页面

:之所以让AppDelegate继承于UINavigationControllerDelegate,并实现navigationController:willShow方法, ,所以实现代理方法对导航栏的显示做了判断。

JumpTestViewController.swift 为:

JumpChannel.kt :

SecondActivity.kt :

在AndroidManifest.xml的application中注册SecondActivity:

在res文件夹下创建一个layout文件夹,并添加activity_second.xml文件:

Demo: flutter_jumpto_native

flutter_webview_plugin 与dart页面跳转使用

使用flutter_webview_plugin 加载一个H5页面,是从dart页面中跳转h5页面,h5页面中可返回dart页面,也可跳转到其他dart页面。

经测试,在Android上可正常使用,但在ios上关闭web页面时显示白屏,web页面并没有close,还没找到原因。。。

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自动跳转的简单介绍
转载源于:http://6mz.cn/article/phgdpe.html

其他资讯