Instagram资源加载在android WebView中并复制资源链接?

时间:2021-02-10 05:41:12

标签: javascript java android webview android-webview

我想复制 Instagram 视频的链接,其中用户单击加载到 android 网络视图中的资源,这与我为 Facebook 实现的相同,但它工作正常。我几乎搜索了两天,但我没有找到任何答案,如果有人知道请纠正我。

这是我的 Instagram 网络客户端代码。

webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                urlString=url;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                webView.loadUrl("javascript:(function() { "
                        + "var el = document.querySelectorAll('div[data-sigil]');"
                        + "for(var i=0;i<el.length; i++)"
                        + "{"
                        + "var sigil = el[i].dataset.sigil;"
                        + "if(sigil.indexOf('inlineVideo') > -1){"
                        + "delete el[i].dataset.sigil;"
                        + "var jsonData = JSON.parse(el[i].dataset.store);"
                        + "el[i].setAttribute('onClick', 'IGDownloader.processVideod(\"'+jsonData['src']+'\");');"
                        + "}" + "}" + "})()");
                Log.e("WEBVIEWFIN", url);
                progressBar.setVisibility(View.GONE);
                super.onPageFinished(view, url);
            }

            @Override
            public void onLoadResource(WebView view, String url) {
                webView.loadUrl("javascript:(function prepareVideo() { "
                        + "var el = document.querySelectorAll('div[data-sigil]');"
                        + "for(var i=0;i<el.length; i++)"
                        + "{"
                        + "var sigil = el[i].dataset.sigil;"
                        + "if(sigil.indexOf('inlineVideo') > -1){"
                        + "delete el[i].dataset.sigil;"
                        + "console.log(i);"
                        + "var jsonData = JSON.parse(el[i].dataset.store);"
                        + "el[i].setAttribute('onClick', 'IGDownloader.processVideod(\"'+jsonData['src']+'\",\"'+jsonData['videoID']+'\");');"
                        + "}" + "}" + "})()");
                webView.loadUrl("javascript:( window.onload=prepareVideo;"
                        + ")()");

            }
            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
            @Override
            public boolean shouldOverrideUrlLoading(WebView view,String url) {
                
                if(url.equals("http://stackoverflow.com/questions")){
                    Toast.makeText(InstagramView.this,"No url",Toast.LENGTH_LONG).show();
                }else{
                    Toast.makeText(InstagramView.this,temp,Toast.LENGTH_LONG).show();
                }
                return  false;
            }
        });
        CookieManager cookieManager = CookieManager.getInstance();
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            CookieSyncManager.createInstance(this);
        }
        cookieManager.setAcceptCookie(true);
        webView.loadUrl(instaURL);
    }

0 个答案:

没有答案