JqueryMobile滚动无法在webview中运行(Android 2.3)

时间:2013-09-30 15:45:25

标签: android jquery jquery-mobile webview

我使用jquery Mobile创建了一个webapp,我通过webview在本机应用程序上呈现它。它适用于Android 4+设备,但使用Gingerbread设备时,滚动功能无效。

直接在设备的浏览器上加载网站确实有效,它只是在我的应用程序的webview上。这就是我创建webview的方式:

    mWebView = (WebView) findViewById(R.id.webView);
    mWebView.setFocusable(true);
    mWebView.setFocusableInTouchMode(true);
    mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    WebSettings s = mWebView.getSettings();
    // s.setUserAgentString(Constants.USER_AGENT);
    s.setRenderPriority(RenderPriority.HIGH);
    s.setJavaScriptEnabled(true);
    s.setDomStorageEnabled(true);
    s.setDatabaseEnabled(true);
    s.setAppCacheEnabled(true);
    s.setSupportZoom(true);

    s.setBuiltInZoomControls(true);
    s.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
    s.setUseWideViewPort(true);
    s.setLoadWithOverviewMode(true);
    s.setSavePassword(true);
    s.setSaveFormData(true);
    s.setJavaScriptEnabled(true);

有关问题出在何处的任何建议?

1 个答案:

答案 0 :(得分:0)

原来这是因为jQuery Mobile在overflow:hidden上设置了CSS属性body。我将它设置为自动用于我的蜂窝前设备,似乎工作正常。

如果有人感兴趣,这就是我使用jQuery做的事情:

function isAndroidBelow3() {
    return !!navigator.userAgent.match(/Android [1-2]/i);
}

if(isAndroidBelow3()){
    $(document.body).css("overflow", "auto");
}