Tag: android webview

如何覆盖android webview os 4.1+的默认文本select?

在发布这个问题之前,我已经search了很多,但在这个问题上找不到任何明确的答案。 我必须重写android webview的默认文本select&显示我的自定义文本select对话框选项。 我已经尝试过这个示例代码项目 。 此示例项目适用于以下设备和仿真器: macros碁Iconia a500平板电脑:10英寸:Android操作系统 – 3.0 macros基Iconia a500平板电脑:10英寸:Android操作系统 – 3.2 三星Galaxy Tab:10英寸:Android操作系统 – 4.0 三星Galaxy Tab:7英寸:Android操作系统 – 4.0 模拟器:皮肤WVGA800:Android操作系统 – 4.1.2 不适用于以下设备: 三星Galaxy Tab:10英寸:Android操作系统 – 4.1.2 三星Galaxy Tab:7英寸:Android操作系统 – 4.1.2 在Android操作系统版本4.1和4.1+而不是显示我的自定义文本select选项对话框,它显示了Android系统的文本select的默认操作栏。 我在这方面search了很多,很多人build议使用onLongClick()方法的接口 我已经在这个论坛上提出了一个问题,请看这个链接 ,这个问题的答案我可以克隆onClickClick()事件,但我不能停止默认的文本select操作栏。 对于这个场景我有几个问题。 为什么onLongClick()方法停止工作在Android操作系统版本4.1 +上运行的设备? 2.如何停止长时间在webview文本上按默认的文本select操作栏? 这是我自定义的webview类。 package com.epubreader.ebook; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.graphics.Rect; […]

Android WebView JellyBean – >不应该发生:找不到基于rect的testing节点

我的应用程序正在使用大量的Web浏览器,这些Web浏览器位于由ViewPager保存的片段中。 每当我滑过我的Galaxy Nexus上的应用程序与Jellybean上我一次又一次得到以下控制台消息: 08-23 13:44:03.374: E/webcoreglue(21690): Should not happen: no rect-based-test nodes found 任何人都可以向我解释什么是错的,以便我可以解决这个问题?

相同的线程错误的WebView方法

我有一个Android程序(在web视图中的Java +的HTML)。 我可以从JavaScript调用Java代码。 但是另一种方式停止工作(在eclipse中更新之后)。 所以这就是我想要做的 做一个webview(工作) 在JavaScript中调用AndroidFunction.test(); (工作) java test()函数调用webView.loadUrl(“javascript:helloBack()”); (!不工作了) 我试图让它在MainActivity的WebView中工作,但它没有工作。 MainActivity.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final WebView webView = (WebView)findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.setWebChromeClient(new WebChromeClient()); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); javascr = new Javascript(this, webView); webView.addJavascriptInterface(javascr, "AndroidFunction"); webView.loadUrl("file:///android_asset/www/index.html"); …. } Javascript.java public class Javascript { Context cont; WebView webView; Javascript(Context c, WebView […]

拦截并覆盖来自WebView的HTTP请求

我有一个WebView在我的应用程序中打开一些网站(总是相同的,这是我自己的网页)。 该网站有一些JS代码,从远程主机加载一些图像。 我想拦截对这些图像的请求(通过URL模式),并给予我自己的内容(即另一个图像),或根据内部应用程序逻辑保持请求不变。 有没有可能做到这一点? 编辑 :目前的问题状态… WebView有能力设置WebViewClient (如Axarydax所述)。 WebViewClient有两个有用的方法 shouldOverrideUrlLoading onLoadResource shouldOverrideUrlLoading能够拦截任何url加载,如果加载是由页面交互触发的(即单击页面上的链接,WebView.loadURL(“”)不触发此方法)。 也可以通过返回false来取消URL加载。 这种方法是不可用的,因为它不能拦截加载页面资源(和图像,我需要拦截,是这样一个页面资源)。 每次页面资源(和图片!thx到jessyjones)加载时, onLoadResource都会触发,但是无法取消该资源。 这使得这个方法也不适合我的任务。

Android WebView“tel:”链接显示网页未find

我想让我的android webview应用程序打开电话:链接到手机。 每次我打开一个电话链接,它都很好,打开了电话。 但是,一旦我完成了我的通话,回到应用程序,它是在一个网页上说:“网页找不到电话:0000000000”。 然后我必须再次点击后退button才能进入到我点击电话号码的页面。 有没有办法让它打开电话的链接,而不是试图在webview中查找页面,以及打开电话? 这是我在WebView中使用的代码来覆盖对TEL和Mailto链接的处理: public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("mailto:") || url.startsWith("tel:")) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); } view.loadUrl(url); return true; } 任何帮助,将不胜感激。 我已经花了最后2个小时淘宝,并没有提供任何答案。

Android WebView不加载HTTPS URL

public void onCreate(Bundle savedInstance) { super.onCreate(savedInstance); setContentView(R.layout.show_voucher); webView=(WebView)findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setBuiltInZoomControls(true); String url ="https://www.paymeon.com/Vouchers/?v=%C80%8D%B1x%D9%CFqh%FA%84%C35%0A%1F%CE&iv=%25%EE%BEi%F4%DAT%E1" //webView.loadUrl(url); // Not Working… Showing blank webView.loadUrl("http://www.yahoo.com"); // its working } 当我尝试在WebBView中加载一个URL时,它只显示一个空白的屏幕。 如果我加载Google.com或yahoo.com它工作正常。

启用/禁用放大Android WebView

WebSettings中有一些与缩放相关的方法: WebSettings.setSupportZoom WebSettings.setBuiltInZoomControls 我注意到他们在某些设备上的工作方式不同 例如,在我的Galaxy S捏缩放是默认启用,但在LG P500它被禁用(现在我不知道如何启用只捏缩放,但隐藏缩放button)。 在P500上,当我调用setBuiltInZoomControls(true)我得到了这两个变体的工作(多点触摸和button)。 如何启用多点触控缩放和禁用设备上的缩放button,如LG P500? (另外,我知道在HTC设备上也有同样的问题) 更新:这里几乎是解决scheme的完整代码 if (ev.getAction() == MotionEvent.ACTION_DOWN || ev.getAction() == MotionEvent.ACTION_POINTER_DOWN || ev.getAction() == MotionEvent.ACTION_POINTER_1_DOWN || ev.getAction() == MotionEvent.ACTION_POINTER_2_DOWN || ev.getAction() == MotionEvent.ACTION_POINTER_3_DOWN) { if (multiTouchZoom && !buttonsZoom) { if (getPointerCount(ev) > 1) { getSettings().setBuiltInZoomControls(true); getSettings().setSupportZoom(true); } else { getSettings().setBuiltInZoomControls(false); getSettings().setSupportZoom(false); } } } if (!multiTouchZoom […]

Android WebView留下滚动条的空间

在我的WebView ,我有一些块元素具有背景颜色(不同于白色)。 但是,背景颜色并不是一直穿过天空 ,嗯,屏幕。 相反,它会在右侧留下一个白色的小条,用于滚动条的去向。 现在,我只希望滚动条在滚动时出现(一旦用户完成滚动,滚动条就会消失)。 我试过了: android:fadingEdge="vertical|horizontal" android:fadeScrollbars="true" android:scrollbarStyle="insideOverlay" (and all other options) 另外,我的HTML在<head>包含以下内容: <meta name="viewport" content="target-densitydpi=device-dpi" /> 所以它不允许缩放,默认情况下不会缩小。 但是,我不知道如何摆脱白色条纹。 有任何想法吗?

用Android WebView加载现有的.html文件

我曾尝试使用WebView从Google代码和其他资源中尝试示例,演示,但是当我尝试在自己的代码中执行代码时,它不适用于我。 我想加载myfile.html ,我把资产文件夹,并使用: private WebView myWebView; myWebView.loadUrl("file:///android_assets/myfile.html"); 在模拟器上显示错误 file:///android_assets/myfile.html的网页无法加载为:未find请求的文件。 /android_assets/myfile.html 当我把这个文件res/raw/文件夹,并使用: myWebView.loadUrl("file:///android_res/raw/myfile.html"); 那么只有模拟器的android 2.2 API级别8可能会加载该文件,其他旧版本显示相同的错误。 我错过了什么? 有什么方法可以在适用于所有API版本的应用程序包中加载现有的.html文件?

是否“shouldOverrideUrlLoading”真的弃用? 我可以用什么来代替?

我有一个问题/问题,是否“shouldOverrideUrlLoading”真的弃用? 如果是这样,我可以使用什么? 看起来像shouldOverrideUrlLoading已弃用针对Android N ,我需要使一个应用程序工作,因为API 19,直到最新的权利,现在是Android N(testing版),我使用一些function,在Android N(如数据保护程序)针对棉花糖将无助于这个问题,因为我需要使用这些新function,这里是我使用的代码的一部分: public boolean shouldOverrideUrlLoading(WebView webview, String url) { if (url.startsWith("http:") || url.startsWith("https:")) { … } else if (url.startsWith("sms:")) { … } … } 这是Android Studio给我的消息: 覆盖'android.webkit.WebViewClient'中不推荐使用的方法此检查报告指定检查作用域中使用了不推荐使用的代码的位置。 谷歌没有提到这个贬值 。 我不知道使用@SuppressWarnings("deprecation")是否会让我在API 19之前的所有设备上工作,直到最新的Android N Beta(以及它最终发布的版本)时,我都无法自己testing它,我需要确定它是有效的,那么,任何人都可以告诉? 非常感谢。