Articles of webview

如何拦截android webview中的POST数据

我有一个由webview组成的Android应用程序。 它需要允许用户在网页上填写表单,然后在用户单击submit上的submit后更改表单的数据。 表单将使用POST请求方法。 所以我的问题是, 我如何拦截表单中的POST数据,更改它的值,然后发送它? 例如:如果有这样的Web表单…… 如果用户在表单中输入name = Steve和email = steve@steve.com,我想在Android应用程序中将值更改为name = bob和email = bob@bob.com并将新POST发送到http://www.example.com/do.php 。 谢谢你的帮助!

Android – WebView =网页不可用

在我的应用程序中使用WebView视图时,无论我强行访问哪个页面,它都说没有find网页 。 这是我的代码: MainActivity.java package com.testing.webview; import android.app.Activity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; public class MainActivity extends Activity { @Override public void onCreate( Bundle savedInstanceState ) { super.onCreate(savedInstanceState); setContentView(R.layout.main); WebView webView = (WebView) findViewById(R.id.webView1); WebSettings webSettings = webView.getSettings(); webSettings.setBuiltInZoomControls(true); webView.loadUrl(“http://www.google.com”); } } main.xml 你可以看到它是非常基本的代码。 确实有互联网连接,因为我可以打开正常的浏览器应用程序并像平常一样访问任何网页。

Android webview加载数据性能非常慢

嗨,我正在研究一个应用程序,因为我正在使用Android WebView。 每当我启动webview活动时,从test.txt文件加载字符串html格式的数据。 test.txt文件包含近2.5 MB的数据,加载test.txt文件后,如果幻灯片屏幕结束,则读取所有数据并按回。 然后随后启动webview活动需要更多时间来呈现数据。 在第一次推出webview时,它花费的时间很少。 在启动此活动之间,我没有收到任何错误/exception/崩溃。 我使用的是Android API等级18及以上版本 注意:我在这个问题上做了很多研究。 我尝试从Android webview的解决方案慢和Android WebView性能没有用。 我不能使android:hardwareAccelerated =“true” < – 为什么因为它有很多副作用(我仍然使用这个,但我没有在这个问题上发现任何变化)。 我不能使用webview.getSettings()。setRenderPriority(RenderPriority.HIGH); setRenderPriority() – >此方法在API级别18中已弃用。建议不要调整线程优先级,并且在将来的版本中不支持此方法。 我的DataLoader.java类 public class DataLoader extends Activity { private WebView webView = null; // Progress Dialog private ProgressDialog progressDialog; String dataContent = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web_view); webView = […]

Android WebView无法加载混合内容

我正在尝试使用WebView制作应用程序,但网站使用https ,但内容(例如mp3文件)使用http ,因此Android Lollipop不会加载它,因为它是“混合内容”。 我试图使用onReceivedSslError handler.proceed(); ,但它没有加载任何东西。 有办法解决吗? 或者我可以让所有网站加载使用http ,所以它没有显示任何错误?

滚动位置位于顶部时,SwipeRefreshLayout + WebView

我正在尝试将SwipeRefreshLayout与WebView一起使用。 我面临的问题是在页面中间,当用户向下滚动时,不必要的刷新开始。 如何在webview的滚动位置位于顶部时才进行刷新事件。 (即,他正在查看页面的顶部)?

让Facebook登录使用Android Webview

我只是想在Android上的WebView上实现facebook登录。 问题是我点击HTML页面上的facebook按钮并在Facebook对话框中插入用户名和密码。 url重定向只是给我一个黑页。 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView webview = new WebView(this); webview.setWebChromeClient(new WebChromeClient()); webview.getSettings().setPluginState(PluginState.ON); webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); webview.setWebViewClient(new WebViewClient()); webview.loadUrl(“http://peoplehunt.crowdscanner.com/hunt”); setContentView(webview); 这是我的HTML页面上的Facebook常规JavaScript API,当点击facebook按钮时会调用此函数。 $(“#login_facebook”).click(function() { FB.login(function(response) { //This function should be called if (response.authResponse) { FB.api(‘/me?fields=name,email,picture,id&type=large’, function(response) { //console.log(“email “+response.email); $(“#submitHandle”).hide(); $(“#loader”).show(); //console.log(‘Good to see you, ‘ + response.picture + ‘.’); […]

如何根据内容动态缩小WebView大小?

从这个问题可以理解问题的详细解释,因为用户添加了图像以更好地解释它。 我在WebView中加载Html内容。 我的布局有很多视图,WebView位于ScrollView中(根据布局要求)。 请不要回答 – “Don’t put WebView inside ScrollView” 。 我知道将WebView放在ScrollView中并不是一件好事,但是根据要求我需要这样做。 所以,我有左片段(显示列表项)和右片段(显示从左片段中选择列表项反映的数据)。 现在,首先当我在WebV中加载Html内容时,它显示正确。 之后,当我使用新的Html内容刷新WebView时,会出现问题。 假设,我的第一个Html内容是正确显示的100行,然后我用新的Html内容重新加载WebView,这是40行然后WebView没有收缩并且适合40行的内容,它仍然只要100在底部显示白色/空白区域的线条。 因此,似乎WebView能够从较少的内容重新调整自身大小,这些内容先前已加载到更多内容,但在内容少于先前加载的内容时无法重新resize。 我尝试了很多方法, 在Manifest中添加android:hardwareAccelerated=”true” 这个博客 还有很多其他方式和博客 我也尝试过使用mWebView.clearView(); 这导致重新调整WebView的大小,但有时WebView开始闪烁,这只是令人讨厌。 与此video类似 但是,找不到任何适当的解决方案。 如果您有任何人遇到同样的问题,请让我知道我可以申请的最佳解决方案。 更新 – 经过进一步的谷歌搜索,似乎这是Honeycomb中一个众所周知的问题。 这个问题也表明了类似的问题。

如何在Android后台服务中运行cordova插件?

我正在研究在cordova上开发的移动应用程序。 我想实现一个后台服务,它做一些工作,比如打开套接字连接同步本地数据库和远程服务器,并通知用户新的远程推送等。 关键是我在javascript中实现了这个代码,但我想在后台执行它。 我在互联网上搜索了一个cordova后台服务插件。 katzer /cordova-插件背景模式 jocull / PhoneGap的-backgroundjs 红色文件夹 我认为最好的是红色文件夹,但它只是为了Android而且它不允许我编写javascript来在后台执行。 但只是在java和javascript之间交换json。 我已经阅读了一些关于android中后台服务的主题,这些是我发现的有用的: 创建一种服务上,Android的使用,PhoneGap的应用 简单的Android服务,例如代码,描述起停服务 机器人-使用-网页视图的外一个活动上下文 所以我开始编写cordova插件(主要是在android上)来在后台执行javascript代码。 我从后台服务创建了一个webview来执行它的javascript。 这在我执行普通javascript时工作正常,但是当涉及到cordova插件时,它失败,例如设备device.uuid给出null 。 这是java服务代码: public void onStart(Intent intent, int startId) { Toast.makeText(this, “My Happy Service Started”, Toast.LENGTH_LONG).show(); createBackGroundView(); super.onStart(intent,startId); } public void createBackGroundView(){ WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); LayoutParams params = new WindowManager.LayoutParams( android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, PixelFormat.TRANSLUCENT […]

如何以编程方式滚动Android WebView

我正在尝试以编程方式将WebView滚动到DOM树中特定元素的位置。 但到目前为止,我还没有能够让WebView响应滚动请求。 我试过调用使用window.scrollTo(…) JavaScript,但WebView没有响应。 在Java方面,我尝试调用WebView.flingScroll(…)方法。 WebView将响应flingScroll ,但我需要的是scrollTo(…)function。 有任何想法吗?

Android 4.4 WebView文件选择器无法打开?

我们正在创建一个使用webview的应用程序,并将访问用户需要上传文件的页面。 我们遇到Android 4.4问题,文件选择器无法打开,单击上传按钮不会发生任何事情。 此function适用于使用openFileChooser方法的早期版本,如下所示: webview.setWebChromeClient(new WebChromeClient() { //The undocumented magic method override //Eclipse will swear at you if you try to put @Override here // For 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/*”); MainActivity.this.startActivityForResult(Intent.createChooser(i, “File Chooser”), FILECHOOSER_RESULTCODE); } // For Android 3.0+ public void openFileChooser(ValueCallback […]