Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在androidwebview中注入Javascript_Javascript_Java_Android_Android Studio_Android Webview - Fatal编程技术网

在androidwebview中注入Javascript

在androidwebview中注入Javascript,javascript,java,android,android-studio,android-webview,Javascript,Java,Android,Android Studio,Android Webview,我有以下JavaScript行,我想在我的WebView中执行它 var token = top.location.href.split('access_token=')[1]; if (token) { top.location.href = "http://example.com/index.php?token=" + token; } 当WebView在链接中有access\u token时,它会将用户重定向到WebView中的另一个页面等。当用户转到该页面时,应用程序会将其重定向到该页

我有以下JavaScript行,我想在我的WebView中执行它

var token = top.location.href.split('access_token=')[1];
if (token) {
top.location.href = "http://example.com/index.php?token=" + token;
}
当WebView在链接中有
access\u token
时,它会将用户重定向到WebView中的另一个页面等。当用户转到该页面时,应用程序会将其重定向到该页面

执行后的完整代码:

   @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/index.php?token=' + 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());
        }
您可以使用。确保指定注入的url是javascript。i、 e.在字符串前面加上
javascript:

Webview webView = (WebView)findViewById(R.id.myWebView);
webView.loadUrl("http://examplex.com/index.php?access_token=ASDFG");
String javascriptCodeUrl= "javascript:var token = "+
                          "top.location.href.split('access_token=')[1]; "+
                          "if (token) { "+
                          "top.location.href = 'http://example.com/index.php?token=' + token;}";

webView.loadUrl(javascriptCodeUrl);

我可以在webView.loadUrl(javascriptCodeUrl)之后添加吗;默认Webview如下:Webview.loadUrl(exampleee.com);javascript代码还能继续工作吗?@PrincéHousein请看我的编辑。(先加载页面,然后加载javascript)不工作,仍然在同一默认网页中我将问题编辑为完整的脚本首先加载页面,然后加载js代码url。请参阅我的代码和第一条注释