Articles of webview

在Viewpager中滚动Webview

我在ViewPager有一个WebView 。 并且ViewPager似乎消耗了所有水平滚动,因此我无法在WebView滚动(垂直工作)。 如何实现WebView优先使用水平滚动?

SIGSEGV将HTML + Flash加载到WebView中

当我尝试使用带有loadDataWithBaseURL且PluginState设置为PluginState.ON的嵌入式Flash插件(主要是youtube)将HTML加载到WebView时,我收到了SIGSEGV信号。 我可以用一个简单的测试用例重现错误。 请参阅以下代码: package ians.android2; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebSettings; public class TestAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); WebView wv = (WebView)findViewById(R.id.webview); wv.getSettings().setPluginState(WebSettings.PluginState.ON); String html = “”; html += “”; html += “”; html += “”; html […]

在Android中维护cookie会话

好的,我有一个包含表单的android应用程序,两个EditText,一个微调器和一个登录按钮。 用户从微调器中选择服务,键入其用户名和密码,然后单击登录。 数据通过POST发送,返回响应,处理,启动新的WebView,加载响应生成的html字符串,并且我拥有用户选择的任何服务的主页。 这一切都很好。 现在,当用户点击链接时,无法find登录信息,并且该页面要求用户再次登录。 我的登录会话被丢弃了,我不确定如何将控制应用程序主要部分的类中的信息传递给刚刚启动webview活动的类。 表单登录按钮中的onClick处理程序: private class FormOnClickListener implements View.OnClickListener { public void onClick(View v) { String actionURL, user, pwd, user_field, pwd_field; actionURL = “thePageURL”; user_field = “username”; //this changes based on selections in a spinner pwd_field = “password”; //this changes based on selections in a spinner user = “theUserLogin”; pwd = “theUserPassword”; […]

WebView未加载网页

我正在使用WebView加载网站。 但它非常慢,并且在加载特定网站时会泄漏。 我正在使用以下代码加载WebView 。 @Override protected void onNewIntent(Intent intent) { if (intent.getStringExtra(“url”) != null) { webView.loadurl(intent.getStringExtra(“url”)); } } 但我正在调用webView.loadUrl(Config.URL); 使用以下内容初始化WebView后, onCreate()方法中的( Config.URL可能包含与上面指定的相同的url)。 this.webView = (WebView) findViewById(R.id.wv); this.webView.getSettings().setJavaScriptEnabled(true); this.webView.getSettings().setLoadsImagesAutomatically(true); this.webView.getSettings().setDomStorageEnabled(true); this.webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); MyClient client = new MyClient(WebActivity.this, (ProgressBar)findViewById(R.id.progressBar)); webView.setWebViewClient(client); 从onCreate()加载一个正常工作(不好,它太慢)。 但是从onNewIntent()加载的相同URL 无法正常工作! 。 在onNewIntent()中onNewIntent()此操作后,没有使用onNewIntent()加载URL,并且当前页面变得不可移动。 即。 滚动条在WebView中移动但页面不滚动。 我在onCreate()测试了相同的URL并且它正在工作。 为此,我正在通过url intent.putExtra(“url”, Config.URL+targetUrl); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); 具有来自通知的未决意图。 虽然它在一些设备上工作,即Google Nexus。 但它并不适用于大多数手机。 […]

iframevideo不会在Android网页视图中进入全屏模式

我目前正在开发基于网站的Android应用程序。 iOS应用程序已经存在,我必须尊重一些代码以保持一致性。 一切都差不多完成了,但我刚刚发现了一个有趣的问题:当使用webview(我对显示的页面没有任何控制)的iframevideo页面(Youtube,Dailymotion)时,它不会全屏显示,即使我按下播放器的按钮。 我已经尝试了几乎所有在这里find的东西,但它只涉及我知道你需要显示哪些页面的应用程序。 这是应用程序的webActivity部分的代码: public class WebActivity extends Activity { String targetURL = “”; String title = “”; WebView wv; @Override public void onResume() { super.onResume(); CookieSyncManager.getInstance().startSync(); } @Override public void onPause() { super.onPause(); CookieSyncManager.getInstance().stopSync(); } /** Called when the activity is first created. */ @SuppressLint(“SetJavaScriptEnabled”) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_PROGRESS); […]

为什么Android WebView没有加载youtube HTML5 iframevideo?

我尝试了以下方法: WebView wv = (WebView) findViewById(R.id.webView1); String playVideo= “”; wv.getSettings().setPluginsEnabled(true); wv.getSettings().setAllowFileAccess(true); wv.getSettings().setPluginState(PluginState.ON); wv.getSettings().setBuiltInZoomControls(true); wv.getSettings().setJavaScriptEnabled(true); wv.loadData(playVideo, “text/html”, “utf-8”); 我只看到缩略图然后当我点击它时,框架变成黑色并且不加载video。 我的目标是API 15,我有互联网许可。 我如何在Android webview中运行html5 youtube iframevideo?

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? 非常感谢您提供任何帮助!