Flutter 左滑返回 iOS轻量版处理

747 阅读1分钟

iOS App轻量版中是基于web的,由于iOS safari本身自带左滑返回功能,而iOS App轻量版也实现了左滑返回功能,解决两者间的冲突 和 在App轻量版在root Route页面还能触发左滑返回功能的情况,解决代码如下:

1、在root Route 页面添加代码,禁止root页面左滑:

WillPopScope( 
 onWillPop: () async{    
    if(kIsWeb){     
        return true;    
    }   
    return false;  
},
child:...,
)

2、在路由跳转时使用CupertinoPageRoute,支持页面左滑

事例代码:

if (settings.arguments != null) {  
    return CupertinoPageRoute(builder: (context) => pageBuilder(context, arguments: settings.arguments));
} else {  
    return CupertinoPageRoute(builder: (context) => pageBuilder(context));
}