Tag: android webview

我怎样才能得到Android上的WebView onclick事件?

我想知道用户何时点击webview,而不是超链接。 在那个点击我想显示/隐藏我的活动持有一个web视图的视图。 任何build议?

通过Android WebView从JavaScript调用Java函数

我想在我的Android应用程序中对一些Java代码进行同步调用。 我正在使用此解决scheme: https : //stackoverflow.com/a/3338656 我的Java代码: final class MyWebChromeClient extends WebChromeClient { public boolean onJsAlert(WebView view, String url, String message, JsResult result) { Log.d("LogTag", message); result.confirm(); return true; } } 我的JavaScript代码: <html> <script> function java_request(){ alert('test'); } </script> <body> <h2>Welcome</h2> <div id="area"></div> <form> <input type="button" value="java_call" onclick="java_request()"> </form> </body> </html> 当我点击java_callbutton,button进入按下状态。 我可以在控制台日志中看到'test' 。 一切都很正常,直到这里。 问题是,button不会回到正常状态。 […]

调用loadurl时,Android webview将启动浏览器

我在LinearLayout创build了一个具有标题和Web视图的Activity 。 在onResume()方法中,它调用webView.loadUrl(url) 。 问题在于,活动首先显示标题,其余部分显示为空白,然后设备浏览器将以URL的页面启动。 我想看到的是在标题下面的WebView中显示的页面。 可能是什么问题呢? 编辑 :好的,做了一些进一步的search,发现这一个: 点击url打开默认浏览器 它指向这里的WebView教程。 只需实现Web客户端并设置它。

在android webview中全屏播放HTML5video

那么,我已经search了几天了,如何在Android WebView上以全屏模式显示HTML5video。 我设法在我的webview上播放HTML5video。 以全屏模式显示video时出现问题。 据我所知,android有两种处理<video>标签的方法: 在android版本<= 2.3.3上 ,onShowCustomView方法被触发,我可以有VideoView实例,并在video完成时设置监听器,设置控制器等等。 在ICS上(可能是3.0以上) ,它看起来像<video>以不同的方式处理。 当播放HTML5video时,onShowCustomView不会在普通模式下被调用 – 看起来好像在WebView内部有一个播放video的内部业务,并且显示了<video>标签中定义的所有控件 – I无法以任何方式访问它。 实际上,如果video是在正常模式下播放的,这是可以的,因为这些控件在那里并且正在工作。 这导致了我的一个大问题:当以全屏模式显示video时,onShowCustomView被调用 – 但在ICS上,“view”参数不是VideoView的一个实例。 我设法发现实例是VideoSurfaceView,它是HTML5VideoFullScreen类的私有内部类。 我们能够进入这个内部阶层的唯一途径就是通过反思。 在查看这个类的GrepCode后,我了解到,与VideoView不同的是,HTML5VideoFullScreen $ VideoSurfaceView不包含MediaPlayer实例,我可以监听其事件或访问其控件。 我能做的唯一事情就是把这个VideoSurfaceView照原样放在一个全屏幕布局中,而不用控制它。 底线 – 当全屏显示video时,我不知道video何时结束,其控制不显示 – 这是非常可悲的。 我无法得到closures全屏幕的触发器。 我尝试了几个不成功的解决方法: 反思:我尝试从内部类VideoSurfaceView到达包含MediaPlayer成员的HTML5VideoFullScreen实例。 我没有设法得到它,我不知道这是可能的(ViewSurfaceView不拥有它的所有者的实例)。 通过Javascript注册video事件(例如onended),并通过JavascriptInterface处理我在JAVA中需要的东西:我发现这个解决scheme不可靠,因为在这样做的时候,我遇到了另外一个问题:<video>标签可以嵌套在一个。 iframe源不是我的,我不能得到它的内容(getElementById或getElementsByTagName [i]是空值) – 这意味着,我无法到达iframe中的<video>元素。 我仍然在寻找一个解决scheme,关于这个问题写得很less。 有没有人设法解决它? 帮助将不胜感激! VideoView类: 这里 (有MediaPlayer) HTML5VideoFullScreen $ VideoSurfaceView类: 这里 (没有MediaPlayer)

如何从WebView获取网页内容?

在Android上,我有一个显示页面的WebView 。 如何在不请求页面的情况下获取页面源代码? 看来WebView应该有一种getPageSource()方法返回一个string,但是它不。 如果我启用JavaScript,那么在此调用中input内容的适当的JavaScript是什么? webview.loadUrl("javascript:(function() { " + "document.getElementsByTagName('body')[0].style.color = 'red'; " + "})()");

WebView和HTML5 <video>

我正在拼凑一个廉价的应用程序,除了其他的东西“框架”我们的一些网站…很简单的WebViewClient 。 直到我点击video。 该video是以HTML5元素的forms完成的,而且这些元素在Chrome,iPhone上都可以正常工作,现在我们可以在本机浏览器中解决Android上的编码问题。 摩擦: WebView不喜欢它。 完全一样。 我可以点击海报图片,没有任何反应。 谷歌search,我发现这是接近,但似乎是基于“链接”(如在HREF …)而不是video元素。 (onDownloadListener似乎没有被video元素调用…) 我也看到重写onShowCustomView引用,但似乎没有被video元素调用…也不应该shouldOverrideUrlLoading .. 我宁愿不进入“从服务器拉xml,在应用程序重新格式化”..通过保持故事布局在服务器上,我可以控制内容好一点,而不强迫人们不断更新应用程序。 所以如果我能说服WebView来处理标签,比如原生浏览器,那最好。 我明显失去了一些明显的东西..但我不知道是什么。

点击网址打开默认浏览器

我在我的WebView加载了一个外部URL。 现在我需要的是当用户点击加载页面上的链接时,它必须像普通的浏览器一样工作,并在同一个WebView打开链接。 但是它打开默认浏览器并在那里加载页面? 我已经启用JavaScript。 但还是不行。 我忘了什么吗?

如果在WebView中按下返回按钮,如何返回上一页?

我有一个应用程序,我有一个WebView ,我显示一些网站。 它的工作原理,单击网页中的链接到我的应用程序内的网站的下一页。 但是,当我点击手机的后退按钮,它直接进入我的应用程序。 我想回到网站上的前一页。 我该怎么做? 这里是我使用的代码示例: public class Webdisplay extends Activity { @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.getWindow().requestFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.webdisplay); getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); Toast loadingmess = Toast.makeText(this, "Cargando El Diario de Hoy", Toast.LENGTH_SHORT); loadingmess.show(); WebView myWebView; myWebView = (WebView) findViewById(R.id.webview); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.loadUrl("http://www.elsalvador.com"); myWebView.setWebViewClient(new WebViewClient()); myWebView.setInitialScale(1); myWebView.getSettings().setBuiltInZoomControls(true); myWebView.getSettings().setUseWideViewPort(true); final Activity […]

如何听WebView完成加载一个URL?

我有一个从Internet上加载页面的WebView 。 我想显示一个ProgressBar直到加载完成。 我如何监听完成WebView的页面加载?