Articles of android webview

Webview shouldOverrideUrlLoading没有被调用

我正在制作一个电子书阅读器,它使用epub格式将书籍加载到webviews中。 在一些书中,同一章节中的某些部分有一个锚点链接。 每一章都以html的forms加载。 这是链接的样子 file:///storage/sdcard0/Android/data/com.abc.reader/files/Download/498935/epub/resources/498935/OEBPS/#footnote-165093-1-backlink 我尝试使用shouldOverrideUrlLoading()方法来获取callback,但它没有得到调用,当我按onPageFinished链接显示为about:blank reader.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.w("TESTTESTOVERRIDE "+url); view.loadUrl(url); return false; } @Override public void onPageFinished(WebView view, String url) { // after the data has been loaded, the following is executed // TODO Auto-generated method stub super.onPageFinished(view, url); System.out.println("check…. onPageFinishedEntered.." + url.toString()); view.loadUrl(jsfileloadurl); } […]

禁用Android WebView / WebViewClient发起的favicon.ico请求

当我调用WebView.loadUrl()时,如何禁用Android WebView / WebViewClient发送对favicon.ico的请求? 通过CharlesProxy分析请求时,我可以看到正在进行的调用。 我不拥有我在WebView中显示的HTML内容。 我的研究已经从服务器端出现了很多解决方法的结果,但是这些对我来说不起作用。

如何使用WebMessagePort作为addJavascriptInterface()的替代方法?

Google针对Android应用开发者的安全指南有以下几点: WebViews不使用addJavaScriptInterface()和不受信任的内容。 在Android M及更高版本上,可以使用HTML消息通道。 据我所知,“HTML消息频道”指的是诸如createWebMessageChannel() , WebMessagePort , WebMessage和kin之类的东西。 但是,他们没有提供任何例子。 他们所做的只是链接到一个WhatWG规范 ,这是相当不清楚的。 而且,基于Google对于createWebMessageChannelsearch,似乎还没有被使用太多 – 我的博客文章描述了Android 6.0 SDK中的变化,成为前10名search结果,我只是顺便提一提。 addJavascriptInterface()用于允许WebView JavaScript使用WebView调用由应用程序提供的Java代码。 我们将如何使用“HTML消息频道”作为替代呢?

WebView.loadUrl()中的Android JS

我想在WebView中加载一个网页,但删除网页的一部分。 所以,我创build了一个自定义的WebViewClient。 而在onPageFinished(),我做了一些JavaScript来删除一些元素。 然后,我使WebView可见。 但是,当我运行它,它将视图设置可见,然后我看到被删除的元素。 就好像JS在非常缓慢的背景下运行一样。 它会产生糟糕的观看体验,因为它会闪烁整个页面,然后闪烁所需的部分页面。 这是我的onPageFinished() @Override public void onPageFinished(WebView view, String url) { view.loadUrl("javascript:" + "document.getElementsByClassName('header')[0].style.display='none';" + "document.getElementById('section_0').style.display='none';" + "document.getElementById('page-actions').style.display='none';" + "document.getElementsByClassName('languageSelector')[0].style.display='none';" + "document.getElementById('mw-mf-last-modified').style.display='none';" + "document.getElementById('footer').style.display='none';"); loadingView.setVisibility(View.INVISIBLE); view.setVisibility(View.VISIBLE); } 有想法该怎么解决这个吗?

图像不能在android webview中加载

我正在尝试在Android应用程序Web视图中加载该网站。 该网站加载没有图像,从网站的所有图像没有加载可能是什么问题。 下面显示了onCreate的代码。 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); String url = getResources().getString(R.string.web_url); web = (WebView) findViewById(R.id.webview01); progressBar = (ProgressBar) findViewById(R.id.progressBar1); web.setWebViewClient(new myWebClient()); web.getSettings().setJavaScriptEnabled(true); web.getSettings().setUseWideViewPort(true); web.loadUrl(url); } 还有一个注意,当我设置JavaScript为false使用web.getSettings()。setJavaScriptEnabled(false); 图像加载给出警告,应该启用JavaScript来正确运行该网站。 这个网站是用CloudFlare保护的,这是不是在android web视图中加载的原因?

在WebView中加载YouTubevideo时,全屏选项不可用

我在Android应用程序中使用webview工作了很多次。 但是这次我把加载YouTubevideojoin到WebView中有一个奇怪的问题。 请参阅这是在Chrome浏览器中加载的YouTubevideo的屏幕截图,其中包含全屏选项。 现在,下面是我的应用程序的屏幕截图,我在webview中加载了相同的video。 但它没有全屏幕选项。 您可以看到两个图像中的更改。 这两个屏幕截图都来自同一个设备。 但是看起来不一样 我的代码为webView加载在这里这里链接。 我希望可能有办法做到这一点。 需要一些帮助。 谢谢。 UPDATE 我也看到同样的问题在这里报道。 但不知道是否有解决scheme。 真诚的,Shreyash

Android的webview有白色的边框,如何摆脱它?

我有一个使用webview加载网页的android应用程序,但是在graphics布局和应用程序中,它显示一个白色的厚边框,我尝试resize,我试图改变XML布局文件中的宽度和高度,但没有改变。 请检查下面的图片以供参考。

在webview中点击URL时如何获取文件名

如何获得我们在页面上提供链接到该文件时,我们上传到服务器上的文件名? 我正在做的是,我提供的数据与webview中的文件链接,所以无论何时用户点击链接需要从服务器下载,因为我已经从服务器上下载这个文件,但问题是无法获得其确切的types和名称使用DownloadManager。 我想要这样 在上面我已经给了我的文件在test_androt链接,当我点击它会给与选项具有文件名的dailog,我不知道如何实现这个文件名时,用户点击WebView的URL链接。 编辑对不起,忘记提到我的url是这样的 misc/dnload.php?t1=MzQ0MDA=&t2=MTY5NTUz&t3=MTY5NTUzMTMwMjEyMDNfcGhhcm1hY3kga2V5IGluZm8ucG5n&t4=MTMwMjEyMDM=

加载应用程序打开的所有片段

我有一个应用程序使用片段来创build页面适配器。 我使用这个来创build一个加载不同片段的滑动选项卡。 每个片段加载webview,显示一个特殊格式的网站。 现在我的应用程序只加载它的片段和左侧和右侧的片段。 我想一次加载所有的六个标签,永远不会。 有没有办法做到这一点? import android.content.res.Configuration; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; public class MainActivity extends FragmentActivity { ViewPager viewPager=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.pager); FragmentManager fragmentManager=getSupportFragmentManager(); viewPager.setAdapter(new MyAdapter(fragmentManager)); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } } class […]

如何打开WebView链接到新的活动?

如何打开网页中的链接到新的活动(什么包含WebView也)? 我有网页在哪里是列表和每个列表项都包含不同的链接。 所以我想,当用户按下第一个项目,它打开第二个活动,并加载该链接到第二个活动的WebView。 希望你明白我试图问:) 那可能吗?