webview_flutter 回退、返回

flutter APP嵌入js商城,该商城无返回按钮。webview使用官方webview_flutter。根据网页端路由判断是否可以返回,添加子定义导航栏实现返回功能,类似在微信中打开网页的回退栏。

主要代码:

WebView(

initialUrl:this.path,

javascriptMode: JavascriptMode.unrestricted,

onWebViewCreated: (WebViewController controller) {

_controller = controller;

},

onPageFinished: (String url) {

_controller.canGoBack().then((value) {

setState(() {

canGoBack = value;//设置状态,在其他地方使用,例如导航栏自定义返回按钮

});

});

}

)

下边是我自定的导航栏,根据canGoBack(这个状态可以自由控制,不一定等于_controller.canGoBack()的状态)判断是否可以显示,和返回。

Widget navWidget() {

return canGoBack ==true

      ?Container(

height:canGoBack ==true ?46 :0,

color: Colors.white,

child:Row(

crossAxisAlignment: CrossAxisAlignment.center,

mainAxisAlignment: MainAxisAlignment.start,

children: [

CupertinoButton(

padding: EdgeInsets.zero,

child: (canGoBack ==true)

?Image(

image:AssetImage('assets/images/back.png'),

)

:Container(),

onPressed: () {

_controller.canGoBack().then((value) {

if (value) {

_controller.goBack();

}else {

//不可返回

                      }

});

}),

],

),

)

:Container(

height:0,

);

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • /* UIViewController is a generic controller base class th...
    DanDanC阅读 2,130评论 0赞 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,947评论 1赞 32
  • 一,基础控件 1,Text 1.1,继承关系Object > Diagnosticable > Diagnosti...
    AiLearn阅读 2,222评论 0赞 0
  • 我们不得不死死的绑在一起,大多数时候相爱,偶尔厌弃,常常疲倦。看似是自己和环境的对抗,其实是和自己业力的撕扯。家人...
    主妇阿不阅读 254评论 0赞 0
  • 昨天下午跟同学聊天,关于在大城市生活有多么艰难,他跟我一样,大学毕业半年。 现在也是在做销售,但是工资也只有三千加...
    悦读悦动阅读 254评论 1赞 1

友情链接更多精彩内容