PhoneGap Android锁屏旋转与外部网页

时间:2012-08-29 12:37:11

标签: android cordova jquery-mobile screen-rotation

我想禁用屏幕旋转并始终使用横向并始终使用全屏。

我试过

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时,它不是全屏,屏幕会旋转。

猜猜这里有什么问题?

1 个答案:

答案 0 :(得分:0)

我终于通过在Java代码而不是JavaScript中加载url来解决这个问题。

以下是如何做到这一点。

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);
    }
}

index.html

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

希望这可以帮助他人。