Можно ли замаскировать Android WebView как браузер для iPhone в режиме AppFare - PullRequest
2 голосов
/ 17 февраля 2011

Итак, я знаю, что некоторые веб-сайты проверяют, не поражен ли он браузером iPhone App Mode, проверяя window.navigator.standalone. Можно ли замаскировать веб-представление Android как браузер iPhone App Mode?

Я попробовал следующий код, но, похоже, он не работает против сайта, который я пытаюсь заставить работать.

WebView webView = new WebView(this);
    webView.getSettings().setJavaScriptEnabled(true);
    /* WebViewClient must be set BEFORE calling loadUrl! */
    webView.setWebViewClient(new WebViewClient() {
        @Override public void onPageStarted(WebView view, String url, Bitmap favicon) {

        }
        // intercept page finished event
        @Override public void onPageFinished(WebView view, String url) {
            if(DEBUG) Log.v(TAG, "done");
            view.loadUrl("javascript:javascript:(function() { " +
                    "window.navigator.standalone=1;" +
                    "})()");
        }
        // intercept clicked link event--load in this webview
        @Override public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);

            return true;
        }
    });

    webView.loadUrl("<website>");

Ответы [ 2 ]

1 голос
/ 07 мая 2011

WebSettings.setUserAgentString (), вероятно, то, что вы хотите.

Установите что-то вроде:

Mozilla/5.0 (iPhone; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile
0 голосов
/ 17 февраля 2011

попробуйте нарисовать макет, используя изображения с трафарета на iPhone, и используйте этот макет вместе с веб-просмотром setContentView(LAYOUT_ID)

Я надеюсь, что это должно сработать, давайте попробуем

...