Articles of android webview

如何检查WebViews发出的HTTP请求

如您所知,加载单个页面时会发送大量请求(图像,脚本,AJAX等)。 所以我需要得到所有这些请求并检查它们。 所以问题是:我如何检查WebView加载页面时发出的HTTP请求? 我想要:标题,方法,状态代码,响应,cookie。 现在,我有: public void onLoadResource(WebView view, String url){ Log.d(“my-tag”, “onLoadResource = ” + url ); } 但这只显示了我的URL。

从Android网络视图历史记录中删除/删除特定url?

是否可以从android的webview历史中删除特定的URL? 我谷歌很多,但无法find任何溶胶,即使我检查了api的文档,我认为没有直接的方法来做同样的事情。 看看下面的代码: // getting the whole list of web view’s history…. WebBackForwardList list = wv.copyBackForwardList(); // getting previuous item/link String lastUrl = list.getItemAtIndex(list.getCurrentIndex()-1).getUrl(); 从第二行代码可以清楚地看到,可以使用历史记录,所以我认为必须有一些方法或技巧从Web视图历史中删除特定链接。 这对你们有意义吗? 任何代码段或任何链接将非常感激。 谢谢,

在Android WebView中拦截HTML5video源请求

我有一个应用程序,它在WebView中显示带有video元素的HTML5页面。 我花了一段时间才弄清楚如何让video正常工作,但最后我成功地在三星Galaxy Tab(Android 3.1)上播放嵌入在WebView中的video。 我使用以下代码作为video标记: HTML5 video not supported. video元素有多个源,现在我正在尝试在video开始播放之前捕获所选的video源(和格式)。 当我单击播放按钮时,我看到video文件的HTTP请求到达存储video文件的Web服务器,但我没有成功拦截应用程序端的此请求。 我查看了几种方法来查看video文件的请求是否通过,但我没有看到它通过其中任何一个。 在我的WebViewClient shouldOverrideUrlLoading(WebView view, String url)中,只有初始HTML5页面请求通过。 在我的WebViewClient shouldInterceptRequest (WebView view, String url)中,我看到只传递了初始HTML5页面请求和video海报图像请求,但没有传递video文件。 onShowCustomView(View view, CustomViewCallback callback)仅在我已经播放video时单击HTML5页面上的全屏控制按钮时调用,而不是在我单击播放按钮时调用。 (这种方法的目的是什么?) 有没有人建议我可以捕获video文件的请求的另一种方法,或者任何人都可以解释当我点击video元素上的播放按钮时实际发生了什么?

显示HTML5video全屏

我有一个webview里面有htmlvideo。 我想全屏显示这个video,所以我覆盖了我的WebChromeClient以使用VideoView 。 这在2.3中很有用,但是在4.x onShowCustomView中从不调用。 video仍然会播放,但是,除了点击播放和停止之外,它还可以在webview中播放而无需任何控制。 另外,我有hardwareAccelerated =“true”。 知道为什么永远不会调用onShowCustomView吗? @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); webView = (WebView) findViewById(R.id.webView); webView.getSettings().setSupportZoom(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setDomStorageEnabled(true); webView.getSettings().setPluginState(WebSettings.PluginState.ON); webView.setWebViewClient(new WebViewClient()); webView.setWebChromeClient(new MyChromeClient()); webView.loadUrl(URL); } private class MyChromeClient extends WebChromeClient implements OnCompletionListener, OnErrorListener, OnPreparedListener { @Override public void onShowCustomView(View view, CustomViewCallback callback) { Log.d(“ma”, “onShowCustomView”); } […]

Android ViewPager在onPageSelected上保存上一页

我有一个带有WebView页面的ViewPager。 页面具有允许用户键入内容的文本字段。 我想在页面之间移动时(通过向前/向后滑动)将页面的输入文本保存到Javavariables。 不幸的是,似乎onPageSelected只告诉我即将显示的页码,而不是它来自的页面,这意味着我无法分辨在用户更改页面时我需要保存哪个页面。 有任何想法吗? 提前谢谢了!

方向更改时将WebView位置恢复为相同内容(Android)

我正面临WebView内容滚动位置的问题,这里是:我在纵向模式下在某种程度上向下搜索页面,当我将方向更改为横向时,滚动向上或向下移动。 它没有显示纵向模式中的确切内容。 我确实尝试在Manifest文件中进行更改,因为configChanges=”keyboardHidden|orientation|screenSize”但没有运气。 我确实覆盖了onConfigurationChanged()但是没有用。 我在这个问题中实现了接受的答案但没有用。 有人可以建议必须做什么,为什么不起作用? 这适用于Google Nexus Tab,最低要求的SDK版本为14.谢谢大家。

嵌入式video的WebView在后台播放

我有一个托管嵌入式video的WebView。 当我降级Webview时,video的声音继续播放。 我怎么能阻止这个? 我确实尝试过webview.destroy(); 但是当我尝试再次打开WebView时,该强制关闭应用程序。

webView.canGoBack()始终为false

我有Android Web View的问题。 当我在我的类中覆盖扩展WebViewClient的函数shouldOverrideUrlLoading时, WebView.canGoBack()返回false 。 以下是我的代码 public class SMWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { view.loadUrl(request.getUrl().toString()); return true; } @Override public boolean shouldOverrideUrlLoading(WebView view, String uri) { view.loadUrl(uri); return true; } } 在我的活动中: @BindView(R.id.main_webview) SMWebView webView; @Override protected void onCreate(Bundle savedInstanceState) { … webView.setWebViewClient(new SMWebViewClient(){ @Override public void onPageFinished(WebView […]

在嵌入式PhoneGap应用程序中保存和恢复WebView

我有一个Android应用程序,它使用嵌入式PhoneGap WebView 。 我已经在我的活动上成功实现了CordovaInterface ,应用程序启动并运行它应该如何运行。 当我暂停应用程序(切换到其他应用程序或标签主页)时,我使用saveState方法保存WebView的状态,应用程序再次启动时应该恢复(此方法适用于没有PhoneGap的应用程序)。 然而,当应用程序再次启动时,我尝试恢复状态(使用restoreState方法)而不首先加载URL(因为我想使用最后一个状态)。 这会导致错误,因为PhoneGap期望加载一个url(至少这是我从exception中收集的内容)。 我的问题是:如何在嵌入式PhoneGap WebView中正确保存和恢复WebView的状态? 我的onCreate方法: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); webView = (CordovaWebView) findViewById(R.id.webView); if (savedInstanceState == null) { savedInstanceState = restoreFromPreferences(); } if (savedInstanceState == null) { webView.loadUrl(“file:///android_asset/www/index.html”); } else { webView.restoreState(savedInstanceState); webView.loadUrlIntoView(savedInstanceState.getString(“url”)); } } 我的onPause方法( onSaveInstanceState类似逻辑): @Override protected void onPause() { super.onPause(); Bundle out […]

删除Android中google docs webview中的登录按钮

我在Android中的WebView中使用谷歌文档显示PDF文件。 如何删除或隐藏“登录”按钮? 我在下面附上截图。 提前致谢。 webview = (WebView) findViewById(R.id.webView1); webview.getSettings().setJavaScriptEnabled(true); webview.loadUrl(“https://docs.google.com/viewer?url=http://www.ex.com/terms.pdf”); webview.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return false; } });