Articles of webview

保存来自WebView的数据

我需要保存在WebView上显示的数据。 我已经实现了保存所有在WebViewClient中创build的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在加载html之前注入Javascript

我正在使用Android WebView加载一些网页。 我需要在加载之前在所有页面中插入一段Javascript代码。 我正试图注入WebViewClient onPageStartcallback。 mWebView.getSettings().setJavaScriptEnabled(true); mWebView.setWebViewClient(new WebViewClient(){ @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { loadUrl("javascript:var output='test string';"); } }) mWebView.loadUrl("xxx.html"); HTML代码: <html> <script>document.write(output);</script> </html> 我希望在HTML之前加载我的Js代码。 但有时JS代码加载在HTML之后。 有什么办法可以解决我的问题?

WebView OverScroll

我试图做一个webView“反弹”时,滚动达到最大(类似“拉到刷新”效果)后拉动。 我有我的自定义视图扩展WebView,并重写该方法 @Override protected boolean overScrollBy(final int deltaX, final int deltaY, final int scrollX, final int scrollY, final int scrollRangeX, final int scrollRangeY, final int maxOverScrollX, final int maxOverScrollY, final boolean isTouchEvent) { VerticalOverScrollController.Result result = overscrollController.calcVerticalOverScroll(deltaY, scrollY); Log.d("overScrollBy", "scrollY " + result.scrollY + " overScrollY " + result.overScrollY); return super.overScrollBy(deltaX, deltaY, scrollX, result.getScrollY(), scrollRangeX, […]

webview高度在nestedScrollView中无限增长

这是我的布局。 当我加载google.com时,webview的高度不断增长。 webview的onSizeChange函数不断被调用,我可以看到webview不断扩大。 我已经尝试了22.2.1和23.1.0的devise和appcompat库,没有效果。 任何解决scheme : – | <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/black"> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <com.example.ajay.scrollabletoolbar.MyWebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true"/> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.AppBarLayout android:id="@+id/appbarlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true"> <android.support.v7.widget.Toolbar android:id="@+id/restricted_browser_toolbar" android:layout_width="match_parent" android:layout_height="?actionBarSize" android:background="@color/colorPrimary" app:layout_scrollFlags="scroll|enterAlways"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF" android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true"> <EditText android:id="@+id/current_url" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerVertical="true" android:backgroundTint="@android:color/darker_gray" android:dropDownAnchor="@+id/restricted_browser_toolbar" android:hint="hint hint" android:imeOptions="actionGo|flagNoExtractUi" android:inputType="textNoSuggestions|textUri" android:paddingBottom="8dp" android:paddingEnd="8dp" […]

Android WebView SSL“安全警告”

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

停止在webViewClient加载

在我的WebView中,我有多个链接头。 在离线模式下,我不能允许重新加载页面,并保持该页面,然后通知用户关于互联网连接。 如果点击其他链接,我可以在加载之前使用shouldOverrideUrlLoading来捕获链接。 但是,如果我点击相同的链接, shouldOverrideUrlLoading不会被解雇,而是首先调用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的应用程序。 我需要在最后一次提交表单之前在一个预览页面中包含几页。 这是关于我的应用程序的一个基本想法。 它需要至less10-15个表单来收集用户的数据。 而我的html看起来像这样: <html> <head> <title>Title</title> </head> <body> <div data-role="page" id="login-page"> </div> <div data-role="page" id="form1-page"> <!– CONTENT –> </div> <div data-role="page" id="form2-page"> <!– CONTENT –> </div> <div data-role="page" id="preview-page"> <!– CONTENT –> </div> </body> </html> 我已将预览button链接到预览页面。 问题是,我想要在预览页面中dynamic地包含所有的表单页面。 任何人都可以帮助我吗? PS:我已经试图谷歌。 我find了这个答案。 但可能是我误解了一些东西,因为这在我的情况下是行不通的。 注意:我正在android webview中渲染。

无法在webview中显示htmlstring

我正在努力在Android WebView中显示stringHTML。 在服务器端,我下载了一个网页并转义html字符和引号(我用Python): my_string = html.escape(my_string, True) 在Android客户端:string没有被转义: myString = StringEscapeUtils.unescapeHtml4(myString) webview.loadData( myString, "text/html", "encoding"); 但是,webview只是将它们显示为文字string。 结果如下: 编辑:我添加从服务器端返回的原始string: &lt;&gt;&lt;!DOCTYPE html&gt;&lt; html lang =&quot; en&quot;&gt;&lt; head&gt;&lt; meta charset =&quot; utf-8&quot;&gt;&lt; meta http-equiv =&quot; X-UA-Compatible&quot; content =“width = device-width,initial-scale = 1.0”&gt;&lt; meta name =&quot; description&quot;内容=&quot;&quot;元名称=&quot; viewport&quot; ;&gt;&lt; title&gt; Saulify&lt; / title&gt;&lt;! – 所有Favicons … – &gt;&lt; link […]

反应原生的Android Webvideo

我正在使用React Native创build一个Android / iOS应用程序,并尝试让video在WebView组件中播放。 video在iOS上播放很好,但我无法在Android WebView中播放。 我遇到过这样的几个线程( 在Android WebView中启用HTML5video播放? ),声称这是一个相当普遍的问题在Android上,可以通过导入WebChromeClient并在webview上设置该选项来解决,如下所示: mainWebView.setWebChromeClient(new WebChromeClient()); 但几乎所有这些线程都严格构build原生Android应用程序,而不是使用React Native。 有谁知道如何让这个工作在React Native?

存储WebView进行脱机浏览

一旦加载页面,强制Android将webview存储到媒体中的最佳方式是什么? 更多的细节: 每个页面将丰富的图像,脚本和样式。 每页将约0.5到1兆字节。 一旦OnFinishedLoading Override被调用,它们将被保存。 最好将其保存到SD卡上,然后使用本地回购将其打开。 不知道我是否应该使用一个SQL数据库的Webviews,或采取每个视图,并写出一个文件。 如果我做后者,那么最简单的方法是什么,所以我不必写一个完整的web爬虫来获得每个文件链接?