Articles of webview

Android 4.2.1,WebView和JavaScript界面​​中断

我有一个web浏览器添加的JavaScript界面​​,大多数设备上运行完美,除了那些运行Android 4.2.1的。 我删除了大部分的代码,并留下了一个非常基本的代码: this.webView.getSettings().setJavaScriptEnabled(true); this.webView.setWebChromeClient(new WebChromeClient()); this.webView.addJavascriptInterface(new Object() { public void handshake() { Log.d("JS", "handshake no params"); } public void handshake(String json) { Log.d("JS", "handshake with params: " + json); } }, "Android"); 在JavaScript的东西的testing代码如下所示: Android.handshake(); 但是我在logcat中得到这个: E / Web控制台:未捕获TypeError:对象[对象对象]没有方法'握手' 再一次,这个相同的确切的东西在我已经testing过的Android操作系统(<4.2.1)的设备中工作正常(最小版本是2.3.3)。 奇怪的是,如果我开始一个全新的项目,除了一个只有一个WebView的Activity,使用相同的代码,即使对于4.2.1,一切都可以正常工作,但是当它是我实际项目的一部分时, 。 没有什么我正在做的webview这是不包括在我提供的代码片段。 对我来说最奇怪的是,javascriptfind了Android对象,但它没有请求的方法(握手),那怎么可能呢? 任何帮助将不胜感激,因为这已经使我疯狂的过去2周左右(这是一个错误,我回到所有的时间,然后放弃等)。 谢谢。

在WebView中拦截POST请求

我正在开发一个Android应用程序来筛选请求(使用白名单)并使用自定义的SSLSocketFactory 。 为此,我开发了一个自定义WebViewClient ,并重写了shouldInterceptRequest方法。 我可以过滤和使用我的SocketFactory的GET请求,但我不能拦截POST请求。 那么,有没有办法在WebView拦截POST请求? 这是shouldInterceptRequest方法的代码: public final WebResourceResponse shouldInterceptRequest(WebView view, String urlStr) { URI uri = URI.create(urlStr); String scheme = uri.getScheme(); // If scheme not http(s), let the default webview manage it if(!"http".equals(scheme) && !"https".equals(scheme)) { return null; } URL url = uri.toURL(); if(doCancelRequest(url)) { // Empty response Log.d(TAG, "URL filtered: " + […]

如何使用android webview中的代码发送POST数据

我有一个由WebWiew组成的Android应用程序,我需要使用代码自动login到网站。 我试过使用postUrl() ,它似乎工作…但只在一些网站。 以下是我正在使用的代码: public class webviewActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView webview = new WebView(this); setContentView(webview); WebSettings webSettings = webview.getSettings(); webSettings.setJavaScriptEnabled(true); webview.setWebViewClient(new WebViewClient()); String postData = "login_email=myEmail@gmail.com&login_password=myPassword"; webview.postUrl("https://www.dropbox.com/login", EncodingUtils.getBytes(postData, "utf-8")); } } 这适用于dropbox.com,但其他网站,如google.com,facebook.com等只是加载login页面或给出错误(google.com给出错误,说我需要启用cookie)。 现在我只是手工去发布数据 查看网站的login表单,并在我的代码中的postData中的名称/值字段。 在谷歌这样的网站上,login表单有很多隐藏的字段,我也一直在将这些添加到postData中。 如果有人能给我任何想法,我做错了,请让我知道,我很困惑这一点。

在Android应用程序的webview中加载url时的初始屏幕

我有一个应用程序,有2个活动,第一个启动第二个加载到web视图的url。 它的工作原理,但加载的url时,webview显示为空…然后,我想做一个启animation面或类似的东西,以显示它的url加载时,我做了一个新的活动,但我不不知道我能做些什么来closuresurl加载时的第三个活动…请任何人可以帮助我吗? 这是我的代码…谢谢! public class Visor extends Activity { WebView mWebView; int Result; @Override public void onCreate (Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.visor); Bundle extras=getIntent().getExtras(); String s= extras.getString("url"); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setPluginsEnabled(true); mWebView.getSettings().setAllowFileAccess(true); mWebView.loadUrl(s); mWebView.setWebViewClient(new VisorClient()); mWebView.getSettings().setBuiltInZoomControls(true); } private class VisorClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { lanzarIntro(); […]

禁用在webview中滚动?

到目前为止,我只是一名iPhone开发人员,现在我决定给Android一个旋风。 我一直没能弄清楚的东西是如何以编程方式防止在WebView滚动? 类似iPhone防止onTouchMove事件将是伟大的!

Android主线程阻塞WebView线程

我一直在做一个问题,在一个WebView的同步调用JavaScript(带有返回值),并试图缩小为什么它不工作的原因和地方。 似乎WebView线程在主线程正在等待响应的同时被阻塞,而WebView在单独的线程上运行时不应该这样。 我已经把这个小样本放在一起(我希望)相当清楚: main.xml中: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:weightSum="1"> <WebView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/webView"/> </LinearLayout> MyActivity.java: package com.example.myapp; import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.JavascriptInterface; import android.webkit.WebViewClient; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; public class MyActivity extends Activity { public final static String TAG = "MyActivity"; private […]

JavaScript不能在Android Webview中使用?

我试图做一个相对简单的iOS应用程序的Android版本,使用一个webview,一些button,然后依靠JavaScript调用一个CMS。 但我坚持在一个相当早的开发点:webview不能用javascript来工作。我已经阅读了很多关于如何在Android webview中启用JS的文章,但到目前为止还没有运气。 以下是我的一些代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.setWebChromeClient(new WebChromeClient()); mWebView.setWebViewClient(new HelloWebViewClient() { @Override public void onPageFinished(WebView view, String url) { //Calling an init method that tells the website, we're ready mWebView.loadUrl("javascript:m2Init()"); page1(mWebView); } }); mWebView.loadUrl("http://my_url/mobile/iphone//app.php"); } private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView […]

如何在webview中加载htmlstring?

我有一个包含这个HTMLstring: <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="spanish press" content="spain, spanish newspaper, news,economy,politics,sports"> <title></title> </head> <body id="body"> <!– The following code will render a clickable image ad in the page –> <script src="http://www.myscript.com/a"></script> </body> </html> 我需要在android中将该网站显示为webview。 我尝试了这一切: webView.loadDataWithBaseURL(null, txt, "text/html", "UTF-8", null); webView.loadDataWithBaseURL("x-data://base", txt, "text/html", "UTF-8", null); […]

带有embedded式YouTubevideo的Android WebView,全屏button冻结video

我有一个android webview加载一个WordPress的博客。 一些博客文章包含youtubevideo,我希望用户能够如果他们希望能够全屏。 问题是HTML5的全屏button什么都不做,点击,但冻结了视图。 有任何想法吗?

Android WebView – 拦截点击

我用一个WebView写了一个简单的helloworld应用程序,在我的资产文件夹的simple.html页面上有一个到CNN的链接。 <a href="http://cnn.com">cnn.com</a> 我如何捕获在我的活动点击这个,停止浏览WebView,然后通知活动“ http://CNN.com ”被点击?