Articles of android webview

如何将数据从一个片段发送到另一个片段?

嗨,我知道这个问题有答案。 我已经尝试了所有这些,但它在我的应用程序中无效。 我正在开发一个具有3个Fragment活动的应用程序。 第一个片段显示一个网站,第二个片段显示listview,第三个片段显示另一个列表视图。 现在我想在用户点击listitem时将第三个片段的URL发送到第一个片段。这就是我所做的。 我正在从这个Fragment发送字符串url到第一个片段。 list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView adapter, View view, int position, long id) { FragmentC fragment = new FragmentC(); final Bundle bundle = new Bundle(); bundle.putString(“position”, “http://www.facebook.com”); fragment.setArguments(bundle);} }); 这是我需要url并希望在网页浏览中显示的第一个片段。 String url=”http://www.hotelsearcher.net/”; Bundle args = getArguments(); if (args != null){ url = args.getString(“position”); } WebView webView= (WebView) V.findViewById(R.id.webView1); […]

Android WebView:仅显示网站的某些部分

我想知道是否可以在WebView中仅显示网站的某些部分。 例如,我有这个网站有以下html: ID 1 ID 2 ID 3 可以仅在WebView中显示,例如,id =“3”的div的内容? 我的代码是WebWiew: WebViewClient WebClient = new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url){ view.loadUrl(url); return true; } }; WebView myWebView = (WebView) findViewById(R.id.webView1); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.getSettings().setBuiltInZoomControls(true); myWebView.getSettings().setBuiltInZoomControls(true); myWebView.setWebViewClient(WebClient); myWebView.loadUrl(“https://www.example.com”);

在Android 4.1.2上的Phonegap 3.0应用程序中无法完全摆脱点按高亮颜色

在Android 4.1.2上点击Phonegap 3.0应用程序中的元素时,我完全摆脱了可怕的亮点。 当点击一些元素时,我首先在tapped元素下获得一个橙色(在这种情况下)突出显示,但随后快速连续的父元素(或另一个祖先元素,不确定哪个) 也显示一个高亮显示! 我知道通过设置透明颜色可以“禁用”点击突出显示: * { -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-tap-highlight-color: transparent; /* For some Androids */ } 这实际上适用于我的应用程序中的大多数可点击元素,但在某些元素上,父/祖先元素仍然会突出显示! 我已经创建了一个演示 ,演示了我正在测试的设备上的外观(三星Galaxy S3)。 是啊,没错。 我正在使用jsfiddle作为animation工具:-) 我已经尝试了另一个线程中讨论的所有内容: 禁用焦点上的橙色轮廓突出 由于点击突出显示实际上在上面用css规则点击的所有元素上消失了,我开始怀疑这个次要的较大高亮显示除了点击之外的其他内容。 但我试图扩展css规则也适用于*:hover, *:active, *:focus没有成功。 我也试图在css和Android应用程序本身之外解决问题。 WebSettings中的第一个setLightTouchEnabled ()似乎很有希望,但是A)它没有用,B)从API级别18它已经过时并且没有效果。 我真的很茫然。 任何帮助都将非常感激。

更新WebView导航UI的推荐事件是什么?

WebView提供goBack()和goForward()来实现典型的后退按钮行为,可以绑定到按钮,操作栏项或其他任何内容: @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.back: if (webView.canGoBack()) { webView.goBack(); } break; case R.id.fwd: if (webView.canGoForward()) { webView.goForward(); } break; case R.id.reload: webView.reload(); break; default: return(super.onOptionsItemSelected(item)); } return(true); } WebView还有canGoBack()和canGoForward() ,告诉你这些是否是可行的选项,给出了WebView的当前导航历史记录,上面显示为围绕goBack()和goForward()调用的goForward() 。 理论上, canGoBack()和canGoForward()可用于启用或禁用按钮,操作栏项等等。 这将为您提供典型的浏览器UI,其中后退和前进按钮仅在用户具有实际效果时可用。 不明显的是我们应该调用canGoBack()和canGoForward()以及启用/禁用这些按钮。 应该是: 自定义WebViewClient中的onPageStarted() ? 自定义WebViewClient中的doUpdateVisitedHistory() ? 在其他一些回调? 这些的一些组合? 每隔一秒左右纯粹在计时器上,因为我们没有可靠的回调来确定何时应该更新?

如何删除Android WebView打印添加的保证金?

我们尝试通过谷歌云打印打印webview内容,但无论我们做什么,结果打印输出都会增加一些余量。 有没有办法删除这个保证金? 我们尝试了: 然后 然后 mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 没人工作……

navigator.geolocation.getCurrentPosition()永远不会在Android上的WebView中返回

我正在尝试访问Android WebView中提供的HTML Geolocation API(使用SDK版本24)。 主要问题是在JavaScript中对navigator.geolocation.getCurrentPosition()的调用永远不会返回 (既没有错误也没有位置数据),而在应用程序端我检查权限并使用android.webkit.GeolocationPermissions.Callback正确地将它们传递给WebView android.webkit.GeolocationPermissions.Callback类。 更新:只是为了澄清这里,“永不返回”我的意思是没有提供过多提供的回调navigator.geolocation.getCurrentPosition(success, error) 。 在我为测试它而构建的示例应用程序(只有一个托管WebView的小活动)我在清单中声明权限并在App start上正确地请求它们。 我看到了提示,可以授予或拒绝位置信息的许可。 表现: 主要代码: public boolean checkFineLocationPermission() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION) && !mIsPermissionDialogShown) { showPermissionDialog(R.string.dialog_permission_location); } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, PERMISSION_ACCESS_FINE_LOCATION); } return false; } else { return true; } } 我可以使用Context.checkSelfPermission()在运行时检查权限,我看到相应的权限被授予我的应用程序。 然后我尝试在WebView控件中打开一个网页。 我在设置中启用了所有必需的选项: mWebSettings.setJavaScriptEnabled(true); mWebSettings.setAppCacheEnabled(true); mWebSettings.setDatabaseEnabled(true); […]

你可以在android webview中自动链接日期吗?

我有这个HTML: sawr-o-pel-te meaning ‘lizard shield’ April 7th, 2015 4/7/2015 April 7th Next Monday 6th 202 E South St Orlando, FL 32801 Quick Facts One of the most well-understood nodosaurids The earliest known genus of nodosaurid Measured about 5 meters (16.5 ft) long The tail made up nearly half of its body length 我想知道是否可以自动超链接日期,以便当用户按下它们时,您可以将它们添加到用户(手机的)日历中? 这应该如何运作的一个很好的例子是Gmail。 如果有日期或单词(明天,本周五等),则应自动链接,以便将日期添加到日历中。 […]

从WebView打开softinput时,Android窗口不会resize/平移

我的问题是以下。 应用程序使用主题android:Theme.NoTitleBar.Fullscreen并且只有一个Activity ,所有其他视图都是Fragment 我在ViewPager Fragment有WebView ,它位于ScrollView HTML内容包含输入字段 我单击WebView底部的输入字段 软输入打开,但Window未resize/平移 我已经尝试在我的清单中为Activity设置android:windowSoftInputMode=”adjustResize”或android:windowSoftInputMode=”adjustPan” 。 还尝试在java中设置其中一个。 我的应用程序中ScrollView内部的正常EditText确实正确调整了平移,因此用户可以看到他/她正在键入的位置。 更新: 如果没有工作解决方案来调整窗口,有没有办法让WebView认为它的内容就像半屏高度更大,因此用户至少可以滚动输入可见。

有没有webview的替代品?

我有一个应用程序,它大量使用webview。 我的要求是能够查看html并将javascript注入正在加载的页面,甚至是iframe。 我用android附带的webview完成了这个,但它的效果并不好。 那么还有其他项目可以提供相同的html5浏览体验,但是对开发人员有点友好吗? 是否有可能采用开源Web视图代码并构建我自己的代码或者这只是一个疯狂的想法? 谢谢。

Android – 使用外部浏览器在WebView中打开目标_blank链接

我构建了一个显示网站的WebView 。 该网站包含没有target=”_blank”属性的链接和一些带有它的链接。 我需要打开外部标准设备浏览器中定义的target链接和WebView中没有它的链接。 我正在使用WebViewClient ,我尝试使用此function但仍然在WebView中打开所有链接: 备选方案1: @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return super.shouldOverrideUrlLoading(view, url); } 备选方案2: @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } 有人知道如何在外部打开空白链接吗? 谢谢! PS:为了避免误解:我不能使用这种方法,因为我知道链接应该外部打开的唯一方法是target属性。