Articles of webview

Monkeyrunner不接触webview

我需要测试包含带按钮的WebView的Android应用程序。 Monkeyrunner适用于除WebView之外的应用程序的所有部分。 WebView中的按钮忽略了Monkeyrunner的触摸。 我看到该按钮被点击,因为它变成了灰色但是按钮什么也没做。 如果我在模拟器上使用鼠标或在真实设备上使用鼠标,那么按钮效果很好。 我从logcat看到触摸事件已发送到应用程序,但该应用程序没有任何操作。 一些代码: final WebView w = (WebView) findViewById(R.id.webView1); String summary = “Google”; w.loadData(summary, “text/html”, null); 布局: Monkeyrunner py: from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice device = MonkeyRunner.waitForConnection(10) # android.widget.Button COORDINATES – THIS WORKS FINE device.touch(10,100, ‘DOWN_AND_UP’) # WEBVIEW BUTTON COORDINATES – BUTTON DOESN’T WORK device.touch(200,200, ‘DOWN_AND_UP’) 我曾尝试单独DOWN延迟UP – 相同的结果。 来自Python或Java内部的Monkeyrunner也不起作用。 像ChimpChat这样的monkeyrunner的味道和包装不起作用。 […]

HTML5 标记在Android Webview中不起作用

如果源文件存储在本地,则HTML5音频标记似乎在Web视图中不起作用。 即 从src=”http://example.com/audio.mp3″等服务器访问文件时,它可以正常工作 我在Android ICS上尝试它。 这里有一些解决方法。 但我不明白为什么会出现这个问题。 关于为什么会发生这种情况的任何解决方案或见解? 谢谢。

有没有办法检测WebView内链接和图像上的长按?

嵌入式video的WebView在后台播放

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

与DisplayMetrics和WebView中的$(window).width()的宽度和高度不同

在Android应用程序内部,我尝试使用以下方法获取屏幕宽度和高度: DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); final int screenWidth = metrics.widthPixels; final int screenHeight = metrics.heightPixels; 这分别为我的手机报告了1080和1920,这与规格相符。 但是,在webview中,当我使用时: var screenWidth = $(window).width(); 这只报告360。 根据我的理解,两者都使用像素作为单位,那么为什么值不同?

你如何在Android中正确编写和使用View子类?

我正在尝试实现此处find的解决方案之一。 我的问题是我不确定我是否正确实现和使用我的子类。 我在这里inheritanceWebView: public class myWebView extends WebView{ public myWebView(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onSizeChanged(int w, int h, int ow, int oh) { // TODO Auto-generated method stub scrollTo(xScroll – (widthScroll/2), yScroll – (heightScroll/2)); super.onSizeChanged(w, h, ow, oh); } }} 它应该是私人的,但暂时忘记了。 我的一个活动中的代码包含在视图层次结构中的内部webview。 在该活动的onCreate方法之外。 在onCreate方法里面,我有: myWebView mapImage = […]

Android:在WebView中加载的图像中的像素质量降低

我正在为移动浏览器构建Javascript应用程序(不包装为原生应用程序)。 我注意到,如果图像尺寸超过特定阈值(宽度超过1400像素左右),Android(经过测试的2.3模拟器和Galaxy S设备)会降低加载图像的质量。 这使得无法加载大位图图像(2000 x 2000 px)而质量无法使用。 我测试了这个 加载一个大图像并将其绘制在 – 我得到了像素垃圾。 如果我使用lineTo()绘制网格线,它们具有完美的质量,那么坏的必须在图像像素数据中 将大图像切成100 x 100个切片并将它们绘制到canvas上 – 这是我发现的唯一方法,不会降低质量。 但是,切片很麻烦,为预处理图像和页面加载时间增加了额外的步骤 我测试了使用新的Image()对象,标签和CSS背景加载图像:所有东西都受到质量下降的影响,所以我怀疑问题是图像加载器本身 我也用CSS图像渲染尝试了一切https://developer.mozilla.org/En/CSS/Image-rendering – 没有运气 视口标记似乎对图像加载没有影响 – 当您尝试触摸加载的像素数据时,数据已经是垃圾。 我尝试了Android SDK文档中建议的所有可能值http://developer.android.com/reference/android/webkit/WebView.html 还测试了Firefox移动,桌面浏览器,iOS:一切都很好。 那么,发生了什么 – Android WebView根本无法加载大图像? (这里挂着Android机器人的笑脸)

不推荐使用android webview setDatabasePath

此方法在API级别19中已弃用。数据库路径由实现管理,并且调用此方法将不起作用。 我使用setDatabasePath来设置webview的数据库路径。 String databasePath = this.getApplicationContext().getDir(“database”, Context.MODE_PRIVATE).getPath(); settings.setDatabasePath(databasePath); 这是否意味着在API 19中它不能再find我的数据库了? 怎么解决这个? ( 他们的意思是:数据库路径由实现管理 )

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 […]

Android App WebView中Vimeo Player的问题

在我的Android应用程序中,我创建了一个WebView来播放Vimeovideo。 当我加载活动时,会显示vimeovideo的正确预览,但是当我尝试播放时,我会看到以下屏幕: 有时video中的音频播放,但我从未收到video。 以下是我的活动内容: if(mediaURL.toLowerCase().contains(“vimeo”)){ Log.d(TAG, “adding viemo”); final WebView vimeoPlayer = new WebView(MediaPreview.this); vimeoPlayer.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); vimeoPlayer.getSettings().setJavaScriptEnabled(true); vimeoPlayer.getSettings().setLoadWithOverviewMode(true); vimeoPlayer.getSettings().setUserAgentString(“Android Mozilla/5.0 AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30”); vimeoPlayer.setWebChromeClient(new WebChromeClient()); vimeoPlayer.setWebViewClient(new WebViewClient()); vimeoPlayer.getSettings().setAppCacheEnabled(true); vimeoPlayer.getSettings().setDomStorageEnabled(true); vimeoPlayer.getSettings().setPluginState(PluginState.ON); vimeo_url = mediaURL + “?player_id=player&title=0&byline=0&portrait=0&api=1&maxheight=480&maxwidth=800”; Log.d(TAG, “vimeo_url: ” + vimeo_url); vimeoPlayer.loadUrl(vimeo_url); // vimeoPlayer.loadDataWithBaseURL(“”, vimeo_url, “text/html”, “UTF-8”, null); mediaHolder.addView(vimeoPlayer);; } 我还没有看到在Android应用程序中使用Vimeo播放器的任何明确示例,所以如果有人让这个工作,请非常感谢您的帮助!