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

Android Jetpack Compose WebView中Mollie支付重定向URL处理问题

解决WebView中Mollie重定向URL跳浏览器的问题

1. 强制WebView拦截目标重定向URL

WebView默认会将未拦截的URL交给系统浏览器处理,必须通过WebViewClient的shouldOverrideUrlLoading方法精准拦截Mollie的重定向URL,强制在当前WebView内加载。

代码示例(Compose中配置WebView):

AndroidView(factory = { context ->
    WebView(context).apply {
        settings.javaScriptEnabled = true
        settings.domStorageEnabled = true
        settings.allowRedirects = true // 显式开启自动重定向(默认已开启,可确保生效)
        
        webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(
                view: WebView?,
                request: WebResourceRequest?
            ): Boolean {
                request?.url?.toString()?.let { url ->
                    // 匹配Mollie重定向URL的前缀
                    if (url.startsWith("https://www.mollie.com/checkout/ideal/return/")) {
                        view?.loadUrl(url)
                        return true // 返回true表示拦截系统默认处理
                    }
                    // 银行Deep Link允许系统跳转至对应App,非目标URL交给系统处理
                    return !url.startsWith("https://www.mollie.com/checkout/ideal/return/")
                }
                return super.shouldOverrideUrlLoading(view, request)
            }
        }
        
        loadUrl("你的Mollie支付初始URL")
    }
})

2. 校验AndroidManifest.xml的Intent Filter配置

确保Intent Filter能精准匹配重定向URL,同时设置正确的属性:

<activity
    android:name=".你的WebView所属Activity"
    android:exported="true">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        
        <!-- 严格匹配Mollie重定向URL的Scheme、Host和路径前缀 -->
        <data
            android:scheme="https"
            android:host="www.mollie.com"
            android:pathPrefix="/checkout/ideal/return/" />
    </intent-filter>
</activity>
  • android:autoVerify="true"可确保App与域名的关联验证,避免系统优先选择其他浏览器;
  • 确认pathPrefix与实际重定向URL的路径完全匹配。

3. 排查系统默认应用设置

若系统中某浏览器被设置为该域名的默认处理应用,会拦截跳转请求:

  • 进入手机「设置」→「应用」→「默认应用」→「浏览器应用」,清除对应浏览器的默认打开关联。

4. 验证实际重定向URL格式

在shouldOverrideUrlLoading中添加日志,确认实际收到的URL是否与预期匹配:

Log.d("MollieDebug", "当前跳转URL: $url")

部分场景下Mollie返回的URL可能存在细微差异(如HTTP协议、路径参数变化),需根据实际日志调整拦截规则。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:26:15