0

jquery Mobile を使用して webapp を作成し、webview を介してネイティブ アプリでレンダリングしています。Android 4 以降のデバイスでは問題なく動作しますが、Gingerbread デバイスを使用するとスクロールが機能しません。

デバイスのブラウザにウェブサイトを直接ロードしても機能しますが、それは私のアプリのウェブビュー上にあるだけです。これは私が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);

問題がどこにある可能性があるかについて何か提案はありますか?

4

1 に答える 1

0

jQuery Mobile によってoverflow:hidden設定されているCSS プロパティが原因であることが判明しました。bodyHoneycomb 以前のデバイスでは auto に設定しましたが、問題なく動作しているようです。

興味のある方のために、jQuery を使用して行ったことを次に示します。

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

if(isAndroidBelow3()){
    $(document.body).css("overflow", "auto");
}
于 2013-10-01T07:34:54.620 に答える