You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Flutter Paystack和WebView Flutter时取消按钮点击无响应求助

解决Flutter WebView集成Paystack支付时取消按钮无响应问题
  • 启用JavaScript支持
    Paystack的支付页面依赖JavaScript实现交互逻辑,必须在WebView配置中开启JS支持:
WebView(
  initialUrl: "你的Paystack支付链接",
  javascriptMode: JavascriptMode.unrestricted, // 关键配置
  // 其他必要配置
)
  • 拦截取消导航请求
    Paystack点击取消按钮后会跳转到预设的取消回调URL,通过navigationDelegate拦截该请求并处理后续逻辑:
navigationDelegate: (NavigationRequest request) {
  // 替换为你的取消回调URL特征,比如包含"/cancel"或你的回调域名
  if (request.url.contains("/cancel") || request.url.contains("your-cancel-callback.com")) {
    // 执行取消后的操作:关闭WebView、更新本地状态等
    Navigator.pop(context);
    return NavigationDecision.prevent; // 阻止默认跳转行为
  }
  return NavigationDecision.navigate;
},
  • 监听JavaScript消息(可选场景)
    如果Paystack通过JS事件触发取消通知,可配置javascriptChannels接收消息:
javascriptChannels: <JavascriptChannel>{
  JavascriptChannel(
    name: "PaystackCancelHandler",
    onMessageReceived: (JavascriptMessage message) {
      // 处理取消事件
      Navigator.pop(context);
    },
  ),
},

若为自定义Paystack集成页面,需在网页中添加触发代码:

// 支付取消时调用
window.PaystackCancelHandler.postMessage("payment_cancelled");
  • 检查用户代理设置(可选)
    部分支付网关对用户代理有要求,可设置标准浏览器用户代理:
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",

内容的提问来源于stack exchange,提问作者DAVE chintan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 08:04:58