Android ICS 4.0 Размещение Flash WebView в полноэкранных вызовах hideAll Method? - PullRequest
0 голосов
/ 07 февраля 2012

Я только что провел расследование, пытаясь обновить приложение для ICS.При размещении моего флэш-содержимого WebView в полноэкранный режим с помощью HTML или длительного нажатия на флэш-контент все содержимое просто исчезает после поиска вокруг источника Android ICS. Я обнаружил это в

android.webkit.PluginFullScreenHolder

PluginFullScreenHolder

public void show() {
    // Other plugins may attempt to draw so hide them while we're active.
    if (mWebView.getViewManager() != null)
        mWebView.getViewManager().hideAll();

    WebChromeClient client = mWebView.getWebChromeClient();
    client.onShowCustomView(mLayout, mOrientation, mCallback);
}

void hideAll() {
    if (mHidden) {
        return;
    }
    for (ChildView v : mChildren) {
        v.mView.setVisibility(View.GONE);
    }
    mHidden = true;
}

Это в основном скрывает весь мой WebView при полном выборе экрана, теперь это не происходит в браузере по умолчанию, и эти методы недоступны.Как я могу это исправить?

Любая помощь с благодарностью.

Best

David

Ответы [ 3 ]

0 голосов
/ 29 марта 2012

Я решил упомянутую проблему, переопределив метод onShowCustomView.Пожалуйста, попробуйте, если это работает для вас.Ниже мой код.

mWebView.setWebChromeClient(new WebChromeClient(){

        public void onShowCustomView(View view, int requestedOrientation, WebChromeClient.CustomViewCallback callback){
            super.onShowCustomView(view, callback);   
            if(Build.VERSION.SDK_INT >=14) {
                if (view instanceof FrameLayout) {                  
                    base.addView(view, new FrameLayout.LayoutParams(
                    ViewGroup.LayoutParams.FILL_PARENT,
                    ViewGroup.LayoutParams.FILL_PARENT,
                    Gravity.CENTER));                   
                    base.setVisibility(View.VISIBLE);
                }
            }
        }

    });
0 голосов
/ 20 декабря 2012

Используя ответ Саймона в качестве основы, я получил его на работу.У меня есть FrameLayout в качестве родителя WebView.Это основа в ответе Саймона.в onCreate я создаю веб-просмотр и добавляю его в мой FrameLayout, который называется mWebContainer.

mWebView.setWebChromeClient(new WebChromeClient(){
            public void onShowCustomView(View view, int requestedOrientation, WebChromeClient.CustomViewCallback callback){
                super.onShowCustomView(view, callback);   
                if(Build.VERSION.SDK_INT >=14) {
                    if (view instanceof FrameLayout) {   
                        mWebContainer.addView(view, new FrameLayout.LayoutParams(
                        ViewGroup.LayoutParams.MATCH_PARENT,
                        ViewGroup.LayoutParams.MATCH_PARENT,
                        Gravity.CENTER));                   
                        mWebContainer.setVisibility(View.VISIBLE);
                    }
                }
            }
        });
0 голосов
/ 10 февраля 2012

Смотрите мой ответ здесь:

сбой флеш-плеера при попытке войти в полноэкранный режим android 4.0

Вот так я решил эту проблему. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...