Поворот экрана блокировки Android PhoneGap с внешней веб-страницей

Я хочу отключить поворот экрана и всегда использовать альбомную ориентацию и всегда использовать полноэкранный режим.

Я старался

android:screenOrientation="landscape"

а также

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

Оба они работают на первой веб-странице (включая jQuery Mobile и PhoneGap). Это первая страница:

super.loadUrl("file:///android_asset/www/index.html");

Это полный экран и не будет поворачивать экран. В index.html есть ссылка на game.html (который включает PhoneGap, но не jQuery Mobile):

<a href="game.html" data-transition="slide" rel="external">

Но когда в game.html, это не полный экран, и экран будет вращаться.

Есть предположения, что здесь не так?


person Ovilia    schedule 29.08.2012    source источник


Ответы (1)


Я, наконец, решил это, загрузив URL-адрес в коде Java, а не в JavaScript.

Вот как это сделать.

public class MainActivity extends DroidGap {

    private JsHelper jsHelper;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.init();

        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        jsHelper = new JsHelper(this);
        super.appView.addJavascriptInterface(jsHelper, "JsHelper");

        super.loadUrl("file:///android_asset/www/index.html");
    }
}

public class JsHelper {
    private MainActivity activity;

    public JsHelper(MainActivity act) {
        activity = act;
    }

    public void goToHtml(String url) {
        activity.loadUrl("file:///android_asset/www/" + url);
    }
}

In index.html:

<script type="text/javascript">
    function func() {
        window.JsHelper.goToHtml("game.html");
    }
</script>
<a href="#" data-transition="slide" rel="external" onclick="func()">

Надеюсь, это может помочь другим.

person Ovilia    schedule 30.08.2012