javascript - 导航到时,Android/WebView 不会加载 javascript 库图像

标签 javascript android webview jquery-mobile

我有一个用 jquery mobile 构建的网站/web 应用程序,我正试图将其打包到 android 的 webview 中;我可以通过将整个站点放入 Assets 文件夹并像这样加载 url 来在本地加载页面:

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

其中一个页面是图片库/幻灯片,可使用 javascript 自动翻阅。但是,如果我从 index.html 导航到我的画廊,图像不会加载。如果我直接加载它(即将它直接加载到 webview 中:

mWebView.loadUrl("file:///android_asset/www/btec/gallery.html");

图像显示和滚动没问题!我不确定为什么会这样。是否有我需要启用/禁用的设置?我已经启用了以下设置:

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.getSettings().setLoadsImagesAutomatically(true);
mWebView.getSettings().setPluginsEnabled(true);

最佳答案

这个技巧可能会解决您的问题。

1) 创建一个 WebViewClient 类,覆盖 shouldOverrideUrlLoading 方法:

private class MyClient extends WebViewClient {
    private WebView mwv;

    public MyClient(WebView v) {
        mwv = v;
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(url.equals("file:///android_asset/www/btec/gallery.html")) {
            mwv.loadUrl(url);
            return true;
        }
        return false;
    }
}

2) 将此客户端关联到您的 WebView :

mWebView.setWebViewClient(new MyClient(mWebView));

可能不是最好的方法;但我认为它有效...;)

编辑:有关其他详细信息,您可以查看:http://developer.android.com/reference/android/webkit/WebViewClient.html

关于javascript - 导航到时,Android/WebView 不会加载 javascript 库图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7660744/

相关文章:

javascript - 即使使用切片,数组的副本也会更改原始数组

android - 改造 POST : JSON object does't send to PHP server

javascript - 如何在 Android/iOS 上的 webview/移动浏览器中最好地预缓存视频?

Android:Listview行背景颜色在滚动时改变

android - 通过网络请求位置更新时出现问题

javascript - 如何在WebView中绘制Canvas?

Flutter webview loadUrl 方法无法正常工作

javascript - 在 Rails 中对 Controller 操作进行 ajax 调用

javascript - 获取 ElementFromPoint(x,y) - whaaaat?

javascript - 删除子节点,除了首先使用 javascript