0

我有一个带有显示 jQuery Mobile 站点的 Web 视图的 Android 应用程序。移动网站在 Web 视图中的行为与在设备浏览器中的行为略有不同。

在站点中,我使用静态标题和面板。在设备的浏览器中,当面板打开时,当标题向左滑动时,这可以正常工作(请参见下文):

在此处输入图像描述

但是,当通过应用程序的 Web 视图加载时,静态标题保持 100% 的屏幕宽度并覆盖三个按钮中的第一个(请参见下文):

在此处输入图像描述

此外,使用该应用程序时 jQuery 移动响应更容易出错/粘滞,并且在使用设备的浏览器时非常流畅。我在下面粘贴了我的 web 视图类的代码:

package com.example;

import com.example.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.GeolocationPermissions.Callback;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;


class MyClient extends WebChromeClient {

    @Override
    public void onGeolocationPermissionsShowPrompt(String origin,
            Callback callback) {
        callback.invoke(origin, true, false);
    }
}

public class locationPage extends Activity {

    WebView webView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.embed);
        webView = (WebView) findViewById(R.id.webview);
        webView.setWebViewClient(new WebViewClient());
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webView.getSettings().setGeolocationDatabasePath("/data/data/testWebClient");

        webView.requestFocus(View.FOCUS_DOWN);
        webView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                return false;
            }
        });

        webView.loadUrl("http://www.example.com/mobile_site/index");

        webView.setWebChromeClient(new MyClient());

        @SuppressWarnings("unused")
        class HelloWebViewClient extends WebViewClient { 
            @Override 
            public boolean shouldOverrideUrlLoading(WebView view, String url) 
{ 
                view.loadUrl(url); 
                return true; 
            } 


    }
}
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { 
            webView.goBack(); 
            return true; 
        } 
        return super.onKeyDown(keyCode, event); 
}
}
4

1 回答 1

0

我正在使用 HTML5 和 css,当使用 WebView 时,我的页面 UI 被完全破坏。

图像位置和缩放级别以及所述静态菜单的差异。

页面链接即使在使用 $mobile.changePage 函数时也有效,但页面来回闪烁。也许我需要删除 Jquery 页面链接并在没有 JQM 的情况下动态注入页面。由于您丢失了历史记录,因此不建议在浏览器上这样做。

静态菜单不动是我想要的结果,这对 WebView 来说是一个加分项。以及webview提供的全屏。

如果我找到任何解决方法,我会进行更多研究并发布一些内容。

到目前为止,JQM 的性能在两种情况下都很糟糕,我从本地存储中获取数据。本来期待效果会好很多的。。。。。。

于 2013-10-30T02:18:41.333 回答