Обход сайтов Zoom Block - PullRequest
       1

Обход сайтов Zoom Block

0 голосов
/ 14 октября 2018

Я работаю над частным корпоративным приложением, которое использует масштабируемый веб-просмотр.

Проблема, однако, заключается в том, что блоки веб-страницы масштабируются на мобильных устройствах с помощью мета-тегов (<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />).

Я пытался и исследовал пару часов, но, похоже, я не обошел его стороной.

До сих пор я пытался создать в нем метаданные, которые не будут работатьпоскольку страница имеет защиту отправителя, загрузите пользовательские элементы HTML через само действие и попытайтесь внедрить пользовательский код JavaScript, который не будет работать каким-либо образом.

Буду признателен, если кто-нибудь сможет мне помочь.

Моя текущая деятельность:

package eu.julius.x;

import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.JavascriptInterface;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private WebView view;

    boolean doubleBackToExitPressedOnce = false;
    String url = "http://www.x.is/";




    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        this.view = (WebView) findViewById(R.id.webview);

        view = (WebView) this.view.findViewById(R.id.webview);
        view.setWebViewClient(new WebViewClient());
        if (savedInstanceState == null) {

            view.loadUrl(url);
        }
this.view.getSettings().getBuiltInZoomControls();
        this.view.getSettings().getDisplayZoomControls();
        this.view.getSettings().setUseWideViewPort(true);
        this.view.getSettings().setLoadWithOverviewMode(true);
        this.view.getSettings().setSupportZoom(true);
        this.view.getSettings().setBuiltInZoomControls(true);
        this.view.getSettings().setJavaScriptEnabled(true);






        WebViewClient mWebViewClient = new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                view.loadUrl("javascript:window.android.onUrlChange(window.location.href);");            }
        };
        view.setWebViewClient(mWebViewClient);
    }
    @JavascriptInterface
    public void onUrlChange(String url) {
        if (Build.VERSION.SDK_INT >= 19) {

            view.evaluateJavascript("var metaList = javascript:document.getElementsByTagName('META');javascript:metaList[0].setAttribute('content','width=device-width, initial-scale=1.0);document.location.reload(forceGet);", new ValueCallback<String>() {     public void onReceiveValue(String s) {
                }
            });


            FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    recreate();
                }
            });

        }



    }

    @Override
    public void onResume() {
        super.onResume();
        view.onResume();
    }

    @Override
    protected void onSaveInstanceState(Bundle outState )
    {
        super.onSaveInstanceState(outState);
        view.saveState(outState);
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState)
    {
        super.onRestoreInstanceState(savedInstanceState);
        view.restoreState(savedInstanceState);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...