Articles of webview

Android:Web App在Chrome中运行,但不在Webview中运行

我在我的网络应用程序中使用ng-hide和ng-show来处理根据用户的登录状态显示的内容。 如果我在手机上使用Chrome浏览器并运行该网站,则此function完全正常。 但是,当我尝试在我的应用或默认手机非Chrome浏览器上的网页浏览中显示它时,它不起作用。 没有任何内容被隐藏,并且绑定到angularJSfunction的按钮不起作用。 请注意,我确实设置了setJavaScriptEnabled(true) 。 当我看到这个问题时,我注意到某些AngularJSfunction在某些浏览器(尤其是IE)上不起作用,因此AngularJS可能与默认的Webview不兼容。 那么是否有一种解决方法或某种方式让我使webview模拟Chrome浏览器? 在Chrome浏览器上的应用程序: http ://gyazo.com/8a8a56bdac1eb7e91753bc4745433a42 Webview上的应用程序: http : //gyazo.com/a58de6192aa822af05a2885560e66f91 logcat中存在以下错误,我已经调查过并且没有任何意义,因为这两个variables在非webview环境中都没有问题。 E / Web控制台:未捕获的SyntaxError:意外的标识符:103 E / Web控制台::未捕获错误:无模块:AuthApp:17 未捕获的语法错误对应于下面的内容,其中结果是我从Parse获得的查询结果。 请注意,我已经在其他浏览器中检查了结果的内容,实际上它将结果返回给我的查询。 for (var result of results){ … }

在Android webview上,当我执行javascript时,sotfkeyboard消失了

在WebView中,当我通过webview.loadUrl()执行JavaScript时,如果软键盘可见,则软键会消失。 当我尝试在html文本字段中键入一些文本时,软键会消失(如果执行了JavaScript)并且我无法键入所有文本。 文本字段不会失去焦点,因此提示仍在文本字段中,但软键盘会关闭。 谁能告诉我如何解决这个问题?

如何使用Android使用webView下载基于会话/ cookie的文件?

我正在尝试使用webView从文件主机(如zippyshare.com)下载文件。 问题是,我不能使用意图来打开浏览器,或者通过DownloadManager重新路由它,因为它是基于会话/ cookie的,并且启动这些方法会将z​​ip文件重定向到原始的html文件中以重新下载。 我试过了: Uri source = Uri.parse(url); DownloadManager.Request request = new DownloadManager.Request(source); String cookie = CookieManager.getInstance().getCookie(url); request.addRequestHeader(“Set-Cookie”, cookie); request.addRequestHeader(“User-Agent”, view.getSettings().getUserAgentString()); request.addRequestHeader(“Accept”, “text/html, application/xhtml+xml, *” + “/” + “*”); request.addRequestHeader(“Accept-Language”, “en-US,en;q=0.7,he;q=0.3”); request.addRequestHeader(“Referer”, url); // Use the same file name for the destination final File destinationDir = new File (Environment.getExternalStorageDirectory(), cordova.getActivity().getPackageName()); if (!destinationDir.exists()) { destinationDir.mkdir(); // […]

有没有办法预先缓存网页以便使用Android WebView查看?

我已经阅读了HTML5缓存清单,我看到Android确实支持使用缓存清单缓存网站。 我想使用缓存清单为我的网站下载所有必需的资源以预加载它,然后打开WebView并使用预缓存的资源显示远程网站。 我想以某种方式预先缓存我的远程页面,最好不使用WebView进行缓存过程。 使用WebView进行预缓存过程的问题是,使用WebView加载网页会呈现并执行页面,而不仅仅是下载页面。 我读过这个: http : //alex.tapmania.org/2010/11/html5-cache-android–webview.html ,但是拥有WebView支持缓存并不是我想要的。 在完成预缓存资源之后,我希望加载过程是即时的(假设远程网站的缓存清单/ etags与缓存版本相同),而不是等待WebView加载并缓存所有内容第一次访问。 预先缓存网页以供以后查看的正确方法是什么? 谢谢!

如何在Android WebView中启用地址栏?

我实际上在我的应用程序中使用WebView并且它工作得很好。 现在我希望能够更改实际的URL,就像Android Stock浏览器中的地址栏一样,您可以在其中查看URL以及您可以在哪里更改它。 我该如何启用此栏? 或者我自己必须实施它?! 谢谢! 我的代码如下: private void setupWebView() { webview = new WebView(this); webview.setWebViewClient(new MyWebViewClient()); WebSettings webSettings = webview.getSettings(); webSettings.setUserAgentString(“foo”); webSettings.setJavaScriptEnabled(true); webSettings.setAppCacheEnabled(false); webSettings.setBuiltInZoomControls(true); webview.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { MyActivity.this.setProgress(progress * 100); } }); }

在加载之前,React-native android WebView句柄单击了Url

嗨,我有以下情况: 我正在反应原生中通过WebView显示一个网站。 在本网站上有一个PassWallet(.pkpass)文件的链接(不是唯一的用例)。 当我点击本网站上的任何链接时,我想检查它是否是其他网站或.pkpass文件或其他什么。 当这个检查正在运行时,我不想加载任何东西,只要等到我的function完成,我就知道是否应该打开一个网站或打开另一个应用程序或其他什么。 我想在JavaScript方面做这个,因为我的整个路由function都存在,在我看来本机是为这种情况构建的本机:-) 在iOS上有一个漂亮的函数onShouldStartLoadWithRequest ,它完全符合我的需要。 _onShouldStartLoadWithRequest(e) { if(checkUrl(e.url)) { let Router = this.props.navigator.props.router; let route = Router.getRouteFromUrl(e.url); this.props.navigator.push(route); return false; } return true; } 我正在收到事件(e)并且可以检查它正在尝试加载的URL。 我甚至可以用e.navigationType检查它是否是点击或其他什么。 现在在Android上这个function不存在。 在本机端有函数shouldOverrideUrlLoading但是此函数未在react-native中实现。 我发现以下GitHub问题/ PR https://github.com/facebook/react-native/pull/6478我现在想,因为这个问题已经关闭,因此有解释,这个function没有得到实现。 所以我开始自己find一种方法。 我创建了一个Native UI Component,它显示了一个WebView,然后实现了这个方法。 CustomWebViewManager.java: package ch.mypackage; import android.support.annotation.Nullable; import android.webkit.WebView; import com.facebook.react.uimanager.SimpleViewManager; import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.annotations.ReactProp; public class CustomWebViewManager extends […]

Android WebView err_unknown_url_scheme

使用下面的简单代码我可以正确加载我的url,但是,当我尝试点击以mailto: whatsapp:和tg: (Telegram)开头的html链接时,我得到“ERR_UNKNOWN_URL_SCHEME”。 有人可以帮我解决这个问题吗? 不幸的是我根本不懂Java 🙁 谢谢。 import android.app.Activity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.activity_main_webview); // Force links and redirects to open in the WebView instead of in a browser mWebView.setWebViewClient(new WebViewClient()); […]

Webview文本选择不清除

我已经在WebView为自定义文本选择函数实现了ActionMode.Callback 。 我遇到的问题是选择和操作模式状态不匹配。 当我长按时,一切都开始了。 当我与其中一个按钮或WebView (不包括实际选择)进行ActionMode应该销毁ActionMode ,并且选择应该消失。 在Android 4.4,KitKat中,这正是发生的事情。 然而,这不是4.1.1 – 4.3,Jelly Bean中发生的情况。 单击其中一个按钮时,不会删除选择。 当我在选择之外点击时,恰好相反。 选择被删除,但上下文操作栏仍保留在屏幕上。 <img src="http://img.androidcookie.com/android/fPlrTm.jpg" alt="选择开始后点击 WebView 。”> 这是我的CustomWebView的代码 public class CustomWebView extends WebView { private ActionMode.Callback mActionModeCallback; @Override public ActionMode startActionMode(Callback callback) { ViewParent parent = getParent(); if (parent == null) { return null; } mActionModeCallback = new CustomActionModeCallback(); return parent.startActionModeForChild(this, […]

启用放大WebView android

我无法在Android中的WebView上启用缩放钳 我是编程新手,已经尝试了一切,无法解决问题。 在这里新,我无法附加图像。 WebViewActivity.java package com.mkyong.android; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; public class WebViewActivity extends Activity { private WebView webView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); webView = (WebView) findViewById(R.id.webView1); webView.getSettings().setBuiltInZoomControls(true); webSettings.setSupportZoom(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl(“http://200.99.150.163/sacsptrans/hrecinicial.aspx”); webView.setWebViewClient(new WebViewClient() { // prevent open in external browser @Override public boolean shouldOverrideUrlLoading(WebView view, String […]

Android CustomWebChromeClient openFileChooser在上传之前调整图像大小

我使用Webview获得了一个很好的页面,我需要上传图像。 现在问题是,手机上的大多数图像都是2-3MB,我需要在上传开始之前调整图像大小并降低质量。 那么我怎样才能使用stackoverflow上的示例代码调整它的大小呢? 这段代码打开了Filechooser: //Android 3.0 public void openFileChooser(ValueCallback uploadMsg) { mUploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType(“image/*”); startActivityForResult( Intent.createChooser(i, “Image Browser”), FILECHOOSER_RESULTCODE ); } 现在我需要一些resize并制作副本并上传resize。 (我知道如何创建一个resize的副本,但不知道如何与上面的代码进行交互)