在WebView Android中注入JavaScript

Injecting JavaScript In WebView Android

本文关键字:注入 JavaScript Android WebView      更新时间:2023-09-26

我有以下WebView脚本:

这个脚本加载JavaScript和网站url,当应用程序检测到短语access_token时,它应该重定向到另一个带有access_token数据的网页例如:

  • 主页加载
  • 用户访问http://example2.com/?access_token=XXX
  • 应用程序检查url并将用户重定向到http://example3.com/?token=XXX

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_homepage);
            mWebView = (WebView) findViewById(R.id.activity_main_webview);
            // Enable Javascript
            WebSettings webSettings = mWebView.getSettings();
            webSettings.setJavaScriptEnabled(true);
    
        String javascriptCodeUrl= "javascript:var token = 'n"+
        "top.location.href.split('access_token=')[1]; 'n"+
        "if (token) { 'n"+
        "top.location.href = 'http://example.com/?user=' + token;}";
                    mWebView.loadUrl(javascriptCodeUrl);
            mWebView.loadUrl("http://default-webpage.com");
            // Force links and redirects to open in the WebView instead of in a browser
            mWebView.setWebViewClient(new WebViewClient());
        }

您在shouldOverrideURL方法中监视url。不需要使用Javascript注入。