Articles of webview

Android浏览器从完整限定符中删除https://方案

在我的应用程序中,我在CustomTabsIntent或WebView中显示一个外部HTML站点: if (customTabsIntent != null) customTabsIntent.launchUrl(this, Uri.parse(“http://some.where.com/site.html”)); else startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(“http://some.where.com/site.html”))); 但该HTML的风格已经更新,但我的智能手机显示旧样式(旧字体等)。 在* .html文件中有一个* .css引用: 在* .css文件中,引用了单独的字体; 例如: @font-face { font-family: ‘MyFontRegular’; src: url(‘https://www.openfont.org/assets/mail/fonts/MyFontWeb-Regular.woff’) format(‘woff’), url(‘https://www.openfont.org/assets/mail/fonts/MyFontWeb-Regular.eot’) format(’embedded-opentype’); } 正如我所说,智能手机中的Chrome浏览器不会显示引用的字体,因为它会关闭http://或https:// 。 当我手动将该方案添加到地址栏中时,将显示正确的样式。 当我从Android应用程序调用它时,如何在我的android浏览器的地址字段中强制https://方案?

Android webview,在assets文件夹中加载javascript文件

我已经看过很多次这个问题,但仍然无法让我的代码工作。 我希望我的webview加载一些URL(例如www.google.com),然后应用存储在assets/jstest.js一些javascript,其中包含以下内容: function test(){ document.bgColor=”#00FF00″; //turns to green the background color } 这是我尝试加载JS的地方: @Override public void onPageFinished(WebView view, String url){ view.loadUrl(“javascript:(function() { ” + ” document.bgColor=’#FF0000′;” //turns to red the background color + ” var script=document.createElement(‘script’); ” + ” script.setAttribute(‘type’,’text/javascript’); ” + ” script.setAttribute(‘src’, ‘file:///android_asset/jstest.js’); ” + ” script.onload = function(){ ” + ” test(); […]

如何在Android webview中禁用水平滚动

我想在我的webview中只进行垂直滚动,不希望任何水平滚动。 webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 这有助于我解决滚动问题。 但使用这个使我的webview看起来很奇怪。 所有编辑文本的高度被挤压(垂直)并且看起来很糟糕。 有没有其他方法可以禁用客户端的水平滚动? 使用SINGLE_COLUMN我们如何避免webview高度变化问题? 我希望垂直外观与以前没有SINGLE_COLUMN的情况相同

自动填写webview中的字段

我已经看到这个问题浮现在互联网上,但我还没有find一个有效的解决方案。 基本上,我想加载我的应用程序并按下按钮; 然后,按钮操作将在已经加载到webview中的网站中填写用户名和密码(或等待onPageFinished)。 最后,将激活登录页面上的提交按钮。 根据我的理解,这可以通过使用loadUrl(javascript)进行java注入来完成,但我不知道填写字段的java命令是什么。 针对iOS提出了同样的问题,但命令略有不同。 是否有可能在webivew中使用javascript做我要求的事情,或者我是否必须在没有像这样或这样的webview的情况下做一个http-post? 非常感谢您提供任何帮助!

Android WebView – 使用Javascript设置HTML字段焦点

我有一个只有一个可见的WebView组件的应用程序,它用于显示一些动态生成的HTML(也可以运行Javascript)。 它已启用WebView 。 对于几个页面,我试图在页面加载完成后设置其中一个输入文本框的焦点 – 不是通过 Body onLoad() ,而是在页面完成加载后,即在onPageFinished()通过JS调用。 大多数javascript执行正常 webview.loadURL(“javascript:JSMethod();”); 但是当我使用相同的调用来执行document.getElementById(‘text1’).focus() – 光标确实到达元素但Soft Keyboard不会popup。 从页面上的按钮执行时,相同的javascript代码确实具有所需的效果。 我附加了有3个按钮的源代码 Focus Text1 – 将光标放在text1上并popup软键盘。 Java Focus Text1 – 调用Java来执行相同的JS。 仅显示光标,不popup键盘 Java Focus Text1 And Keyboard Open – 从Java和Forces键盘调用JS打开。 我的理解是JS执行应该是相同的,无论是使用按钮/事件从浏览器执行还是通过WebView.loadURL()从Java发送。 这是我的查询 我在使用Button#2时遗漏了什么? 这就是我当前代码的方式,我只看到光标已设置但SoftKeyboard无法打开。 当我使用Button#3写入的逻辑时,我有时看不到光标在场上但是给了我想要的效果,当我在popup的键盘中输入内容时光标变得可见。 我在Button#2看到的行为可能是Android JS执行中的错误吗? 或者可能是WebView没有焦点,这就是为什么只显示光标? 我也试过webview.requestFocus() – 我不能写requestFocusOnTouch()因为它是我唯一的View,我希望它能自动聚焦。 演示行为的Java代码是 import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.Log; […]

错误/ Web控制台:未捕获TypeError:无法在http://m.youtube.com/:844调用null的方法’getItem’

以下错误来自Android(WebView),而不是直接来自我自己的代码: 04-28 12:36:15.174: ERROR/Web Console(7604): Uncaught TypeError: Cannot call method ‘getItem’ of null at http://m.youtube.com/:844 除了将该URL加载到WebView之外,我真的没有做任何特别的事情。 大多数时候我没有得到这个错误,所以我假设这可能指向一些不可靠的网络条件? 也许youtube.com太忙了? 这很难说。 无论如何,我想至少知道可能导致这种情况的原因以及我是否可以捕获该错误以便我能够更好地处理它。 同样,我自己的代码不知道getItem是什么。 另一方面,出现此问题时,我的WebView上的YouTube页面只是空白 。 见解? 编辑:我一直在寻找有关建议WebSettings.setDomStorageEnabled(true)文档。 到目前为止我能find的唯一提示是在这个SO线程中 :正如我之前提到的,这个问题很少发生,并且自从我发布问题以来没有发生过。 所以我必须先了解一下这个与“DOM存储”之间的联系,然后才能设计出一种方法来测试/validation这是否能解决问题。 另外,我刚刚遇到另一条错误消息(带有良性结果,所以看起来似乎): 05-02 00:44:45.823: ERROR/Web Console(1595): dojo.back.init() must be called before the DOM has loaded. If using xdomain loading or djConfig.debugAtAllCosts, include dojo.back in a build layer. at […]

如何从android中的Web视图获取当前页面URL

使用webview.loadUrl(url)方法我打开一个url。 如果我单击视图上的任何Button ,它将指向另一个页面。 现在我想得到定向页面的url。 我怎么才能得到它? 我还想要在webview上显示的内容。 如何获取WebView的内容?

在WebView中禁用缩放缩放?

我正在构建一个在WebView中显示某些内容的应用程序。 我正在设计这些内容以适应屏幕,不需要缩放。 有没有办法关闭WebView的缩放function?

如何在Android上的WebView中提高JS可拖动菜单的性能

我们在Android上的WebView中显示了一个Web应用程序,我们确实需要处理旧版Android平板电脑上的性能问题 我们正在使用iScroll-lite进行javascript拖动 我们将硬件加速设置为true,将渲染优先级设置为高,WebView只允许80ms间隔内的一个MOVE触摸事件 我们还能做些什么吗? 有没有比iScroll-lite更快的替代品? 我们不知道究竟是什么让它如此缓慢。 例如,它运行在手机索尼Erricson与1 GHz,512 MB RAM与Android 2.3顺利,但在平板电脑高通1GHz,512 RAM与Android 4.0你拖延,你实际上必须等待看到任何结果。 我在Android版本和屏幕分辨率中看到的唯一区别。

如何改善webview加载时间

我有一个可以在webview中加载的URL。 如果我通过浏览器打开webview需要的时间较少,但如果我在webview中加载URL则需要更多时间。 此外,如果我必须在另一个屏幕中重复使用相同URL的相同webview页面,那么我无法做到这一点,因为如果我在不同的屏幕中使用相同的webview对象,那么加载URL也需要时间。 如何让我的webview立即加载URL?