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

如何将Web应用转为Android应用?登录跳转浏览器问题求助

解决WebView点击登录按钮跳转浏览器的问题

你的问题出在WebView默认会将页面中的跳转请求(包括表单提交)交给系统浏览器处理,要让操作在App内完成,只需给WebView设置自定义的WebViewClient,拦截并接管所有URL请求即可。

修改后的完整代码

package com.example.prn_update;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {
    private WebView myWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myWebView = findViewById(R.id.webView);
        WebSettings webSettings = myWebView.getSettings();
        
        // 保留已有的必要设置
        webSettings.setJavaScriptEnabled(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setDatabaseEnabled(true);
        // 可选:启用缓存提升加载体验
        webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);

        // 关键:设置自定义WebViewClient拦截跳转请求
        myWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // 让当前WebView加载请求的URL,不跳转浏览器
                view.loadUrl(url);
                return true;
            }

            // 适配Android 7.0+的API重载方法
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, android.webkit.WebResourceRequest request) {
                view.loadUrl(request.getUrl().toString());
                return true;
            }
        });

        myWebView.loadUrl("https://script.google.com/macros/xxxxx/exec");
    }
}

关键说明

  • WebViewClient的shouldOverrideUrlLoading方法会拦截所有页面跳转请求,返回true表示由当前WebView处理该请求,不交给外部浏览器。
  • 同时重载两个版本的shouldOverrideUrlLoading,适配不同Android版本的API要求。
  • 若需对特定URL做特殊处理(比如部分链接仍需跳转浏览器),可在方法内判断url的值后再决定是否拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:01:17