Articles of webview

在Android上显示性能良好的巨幅地图?

我是6个月前开始Android开发的“初学者”。 我对这个话题非常热情,我读过几本书: 学习Java for Android Development ; 适用于Absolute Beginners的Android应用 ; 从Android 4开始(开始Apress) ; Pro Android 4(专业版) ; Mark Murphy的书籍副本(因为亚马逊上没有Kindle版本)。 这些书使我能够理解Android的工作方式。 但现在缺少的是……经验。 所以我决定为一个项目做出贡献,该项目的目标是显示一个巨大的地铁地图 – 当然,项目的目标更广泛,但谈论它与这个问题无关。 地图在我的应用程序包中离线存储 。 用什么? 无法使用Google地图,因为我的应用程序地图与Google地图几乎没有任何关系。 使用简单的ImageView来显示地图是“不可能的”,因为不支持缩放,平移等,而且我自己编码远远超出了我的能力。 我发现的唯一不错的解决方法是使用WebView,因为支持缩放和平移 。 此外,仅使用一个大图像无法做到这一点:它会导致极端的图像质量损失 。 问题是什么 我不能使用单个图像,因为当图片大于1300px时,Android会自动降低质量(参见上面的链接)。 我希望以最低2000px的分辨率显示我的地图( xhdpi屏幕在1280px宽的屏幕上显示整个图像,但我希望它们也能够缩放)。 使用多密度图像(你知道, ldpi , mdpi , hdpi和xhdpi设备的不同版本)是不可能的,只要它们大幅增加APK的文件大小…… 通过将我的地图分成5个不同的图块 ,并且只使用一个图像来显示所有屏幕密度,一切看起来都不错……除了WebView性能太糟糕 。 最后一个解决方案的代码 我将我的巨大地图分成5个不同的地图图块,这些图块基本上是横向格式的矩形。 我把它们全部(map [1-5] .jpg)和一个HTML文件(map.html)放到./assets/文件夹中。 HTML文件的代码如下: Huge map html, […]

Twitter Bootstrap无法在Android WebView中运行

HTML文件(test.html)是 Hello World!!! Learn more HTML和bootstrap css文件放在assets文件夹中。 如果我在IE / Firefox中打开HTML文件,它会正确显示。 但Android WebView无法正确呈现 WebView的代码是 WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); String url = “file:///android_asset/test.html”; webView.loadUrl(url); IE渲染就像这样 WebView呈现如下 哪里不对?

Android WebView新窗口URL

我遇到了Android WebView的问题,我想在同一个WebView打开一个target=’_blank’的URLs ,就像所有其他URLs都打开一样。 另请注意,我重写了WebViewClient ‘的这种方法,用于处理URL重定向(以便在我的WebView中打开所有URL重定向),但是如果URL为target=’_blank’此方法不会被触发。 请帮忙! 提前致谢。

Android WebView SSL’安全警告’

我正在为客户构建一个应用程序的测试版本。 此应用程序的一部分使用调用基于SSL的站点的WebView。 反过来,客户端提供了一个测试域,其中证书名称与FQDN不匹配。 唉,他们无法提供匹配的证书。 🙁 我正在使用一行代码在同伴iOS ad hoc应用程序上解决此问题(同样,不用于生产用途 – 仅用于测试目的)。 我已经在Android操作系统上搜索过类似的信息,但是我在这里和其他地方看到的解决方案足以让我的头脑旋转比较大! 有解决这个问题的简单方法吗? 即使面向用户的设置隐藏在某个地方? 线索赞赏!

从WebView保存数据

我需要保存我在WebView上显示的数据。 我通过保存在WebViewClient中创建的所有URL请求并将它们发送到后端服务来实现这一点。 后端服务稍后会对这些文件发出请求。 问题是WebViewClient正在运行自己的循环并且响应不可见,这导致我对每个资源发出两个请求。 有没有办法直接在WebViewClient中获取数据? 这是当前代码的一部分,它正在工作: private class Client extends WebViewClient{ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { plainText = //get plain text and save it webView.loadDataWithBaseURL(url, plainText, MIME_TYPE_TEXT_HTML, UTF_8_ENCODING, null); return true; } @SuppressWarnings(“deprecation”) @Override public synchronized WebResourceResponse shouldInterceptRequest(WebView view, String url) { // we need to make sure it does nothing in […]

Android webview loadDataWithBaseURL如何从资产加载图片?

在我的项目中,我有一个文件: “MyProject/assets/folder1/image1.jpg” “MyProject/assets/folder1/index.html”. 在webView中我需要打开index.html(带图片)。 我尝试这段代码: String baseUrl = “file:///android_asset/folder1/”; webView.loadDataWithBaseURL(baseUrl, readFileAsString(“index.html”) , mimeType, “UTF-8”, null); 但图像无法加载。 如果我将图像放到“ assets ”目录( MyProject/assets/ )并使baseUrl = “file:///android_asset”图像被正确加载; 如何从root资产目录加载图像,还是从assets/folder1加载图像?

如何在Android中停止WebView的INTERNAL滚动?

我的应用程序中有一个WebView,其中包含HTML内容,HTML内容的大小大于WebView的大小。 当用户将他/她的手指拖到其上时,由于哪些内容在其内部滚动。 我想停止内容滚动发生内容。 inheritance了迄今为止我已经尝试过的事情: WebView view = new WebView(context); //context is of Activity view.setHorizontalScrollBarEnabled(false); view.setVerticalScrollBarEnabled(false); view.setScrollContainer(false); 在CSS中: overflow : hidden !important; 请建议除了禁用手指拖动 (黑客)以进行webview之外的解决方案,因为这会干扰我的其他function,如下所示: @Override public boolean onTouch(View view, MotionEvent motionEvent) { if(motionEvent.getAction() == MotionEvent.ACTION_MOVE) { return true; } }

在webViewClient中停止加载

在我的WebView中,我在标题中有多个链接。 在离线模式下,我不能允许重新加载页面并按原样保留该页面,然后通知用户有关互联网连接的信息。 如果我点击其他链接,我可以在使用shouldOverrideUrlLoading加载之前捕获链接。 但是,如果我单击相同的链接,则不会触发onLoadResource ,而是首先调用onLoadResource方法。 在那个方法中我尝试了webView.stopLoading(); 但它继续工作并触发onReceivedError方法并在页面上显示错误报告。 这是我的WebClient: webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(MyApplication.getInstance().isOnline()) { return false; } Toast.makeText(getApplicationContext(), “Please check Internet connection and try again.”, Toast.LENGTH_SHORT).show(); return true; } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.i(“ON_PAGE_START”, “RUNNING ============>” + url); if (MyApplication.getInstance().isOnline()) { super.onPageStarted(view, […]

在Jquery mobile中的一个页面中包含几页

我正在使用jquery mobile处理应用程序。 我需要在最终提交表单之前在一个预览页面中包含几页。 这是关于我的应用程序的基本概念。 它需要至少10-15个表单来收集用户的数据。 我的HTML看起来像这样: Title 我已将“预览”按钮链接到预览页面。 问题是,我想动态地在预览页面中包含填充值的所有表单页面。 任何人都可以帮助我吗? PS:我已经尝试过google了。 我find了这个答案。 但可能是我误解了一些东西,因为它在我的情况下不起作用。 注意:我在android webview中呈现这个。

需要在CookieSyncManager :: getInstance()之前调用CookieSyncManager :: createInstance()

此错误消息非常清楚: 需要在CookieSyncManager :: getInstance()之前调用CookieSyncManager :: createInstance() 但我只是因为我遵循官方文档而得到此错误: 要使用CookieSyncManager,主机应用程序必须在应用程序启动时调用以下内容: CookieSyncManager.createInstance(context) 要设置同步,主机应用程序必须调用 CookieSyncManager.getInstance().startSync() 在Activity.onResume()中 仅当应用程序尝试恢复时才会发生错误,而不是在干净地启动时。 所以,我可以通过将CookieSyncManager.createInstance(context)移动到Activity.onResume()来解决这个问题,但是……不会创建新问题吗? (例如,每次应用程序恢复时都忘记以前的会话cookie?)