Articles of webview

VideoView顶部的android透明WebView

我有一个Ionic项目,我想要显示一个video,并在其上面的cordovaWebView的内容。 要在video视图顶部使用透明的WebView ,请使用以下插件: webView.getView().setBackgroundColor(0x00000000); ((ViewGroup) webView.getView()).bringToFront(); VideoView被初始化并添加到如下的FrameLayout : FrameLayout containerView = (FrameLayout) cordova.getActivity().findViewById(1); if (containerView == null) { containerView = new FrameLayout(cordova.getActivity().getApplicationContext()); containerView.setId(1); containerView.setBackgroundColor(Color.BLACK); FrameLayout.LayoutParams containerLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); cordova.getActivity().addContentView(containerView, containerLayoutParams); videoView = new VideoView(cordova.getActivity()); videoView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT)); containerView.addView(videoView); MediaPlayer player = new MediaPlayer(); player.setOnPreparedListener(this); player.setOnCompletionListener(this); player.setOnErrorListener(this); final SurfaceHolder holder = videoView.getHolder(); holder.setKeepScreenOn(true); holder.addCallback(new […]

Flash中的Android WebView – 分层问题

我想在包含Flash的Android WebView中有交互button。 作为一个testing,我设置了一个HTML以加载一个x / y大小的闪存。 public class webz extends WebView { private Drawable image; public webz(Context context, AttributeSet attrs) { super(context, attrs); image=context.getResources().getDrawable(R.drawable.icon); getSettings().setPluginsEnabled(true); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); image.setBounds(100, 300, 150, 450); image.draw(canvas); } } 我设置了一个testing图像,将其覆盖在闪光灯的一半,未使用的canvas的一半。 一旦加载,Flash将加载到canvas上,只留下HTML上的部分。 链接到屏幕 这个问题的答案指出,Adobe的Flash Player在webview中创build一个surfaceview。 我认为这是分层问题的原因,但我不知道如何克服它。 有谁知道如何覆盖这个? 该button还必须将按键事件发送到闪光灯(如按下屏幕上的button,并将A键发送到闪光灯)。 如果你知道如何做到这一点,这将是非常有益的

Android中的WebView中的Textfield被键盘隐藏

当我触摸html文本框时,popup软键盘,并隐藏文本框,这样我就无法看到我input的内容。 如何为滚动隐藏内容添加垂直滚动?

如何在Android中调用多个WebView时控制内存使用情况?

我的应用程序的主要活动是一个Activity ,其中包含一个Web Webview来加载网页。 我重写方法shouldOverrideUrlLoading(WebView view, String url) ,使每个URL请求调用一个Intent并加载在一个新的同一活动,包含WebView 。 这样做是为了在按下BACK键时提供更好的体验,只需完成当前的活动并返回到前一个活动,与单一webview中使用goBack()相比,无需再次渲染页面。 但是现在的问题是,在我打开很多url后,在后台创build一个长长的活动队列,它使用的内存变大了。 当我回到启动器并检查进度时,我可以看到我的应用程序caching了超过200M的数据。 这是不可接受的… 有趣的是,我可以看到我的应用程序用完了我的内存,但在Eclipse的DDMS的Heap视图中,我可以看到应用程序分配的内存不超过10M。 所以我猜200M是Webviewcaching的webStorage ? 有什么办法来控制内存? 我正在考虑一次只保存5层活动,回去5次时只是跳回主页。 但是还是不知道如何在我需要的5个活动旁边释放内存,这个我再也不用了? 或者,如果这是因为WebView自动保存网页caching,如何手动pipe理这个? 如设置最大caching大小或页数的限制?

当OS暂停时恢复Android的webview /在后台的应用程序上运行JavaScript?

首先closures我正在处理一个应用程序,当应用程序不在前台时需要运行JavaScript; 问题似乎是,当应用程序被放入后台/ webview从屏幕上分离时,webview的onPause方法被调用,每个文档执行以下操作:“暂停与此WebView及其关联的DOM相关的额外处理,插件,JavaScript等“ 从我迄今为止发现,我最好的select似乎是使用reflection来调用webview的“onResume”方法,它应该撤销所有这些进程暂停。 用我目前的实现,我得到了一个实例的方法,但是当调用什么都没有发生,因为我的后续JavaScript调用什么都不做(当我打开应用程序并在前台时,请注意,这是有效的)。 其他人看到我的代码问题或有一个解决scheme,当您的应用程序在后台运行JavaScript没有完全启动应用程序? 推送消息来说,JavaScript需要运行,所以意图发送通知在后台运行的服务: Intent intent = new Intent( "some action" ); intent.putExtra( "xtifyJson", xtifyJSON.toString() ); context.sendBroadcast( intent ); 在我的广播接收器的接收器中,居住在后台的服务总是在运行: final String stringArrayExtra = intent.getStringExtra( "xtifyJson" ); if ( !Text.isNull( stringArrayExtra ) ) { new Handler( context.getMainLooper() ).post( new Runnable() { @Override public void run() { try { Log.d( "Hey Dev Guy", […]

使用ContextWrapper和Context创buildAndroid WebView对象时有什么不同?

问题 :我想在Android WebView内部预加载一个网页,并在活动准备就绪时将其附加到一个Activity中。 加载网页的触发点在实际的Activity被创build之前。 所以我用下面的方法在服务中创build一个webview对象。 MutableContextWrapper contextWrapper = new MutableContextWrapper(serviceContext.getApplicationContext()); this.webView = new WebView(contextWrapper); 当需要显示这个webview的Activity被创build时,我只是创build一个framelayout并添加一个子视图,即这个webview并调用setContentView。 这样我的webview显示预装了网页。 我也做了以下 contextWrapper.setBaseContext(CurrentActivity.this); 这与上面指定的ContextWrapper对象是一样的。 即使在此之后,webview也不会绘制正常使用情况下能够绘制的Javascript警报。 甚至当我这样做 ContextWrapper contextWrapper = new ContextWrapper(CurrentActivity.this); this.webView = new WebView(contextWrapper); this.webView.loadUrl(someUrl); WebView无法popupJS警报。 我甚至在日志中看不到任何exception或致命标记。 WebView无法在其上绘制任何窗口。 这正常工作很好,意味着用当前活动的上下文直接创build一个webView。 this.webView = new WebView(CurrentActivity.this); this.webView.loadUrl(someUrl); 对于所有我知道一个http://developer.android.com/reference/android/content/ContextWrapper.html只是执行相同的操作,它在基础上下文保持传递给它在构造函数中。 我的用例是这样的。 我创build了一个传递给它的http://developer.android.com/reference/android/content/MutableContextWrapper.html的webView对象。 MutableContextWrapper保存某个活动的上下文,或者可以保存或应用上下文。 当需要显示webview的实际活动开始时,我切换MutableContextWrapper中的上下文,并通过将其放入框架布局和setContentView中来显示webview。 基本上,开始加载页面的触发器是在创buildActivity之前进行的,因此我想在webview中预加载页面,并在创build时将其附加到活动中。

PicturePileLayerContent(…)的含义是什么:警告:绘制没有内容的PicturePile

当从服务器获取HTML内容到WebView和HTML包含img src标签时,我得到这个警告示例:序列表示阳离子种类的极化强度的递增顺序 img src =“http://img.androidcookie.com/android/No-Event.php” 11-06 01:35:44.129: W/PicturePileLayerContent(2179): Warning: painting PicturePile without content! 11-06 01:35:44.139: W/PicturePileLayerContent(2179): Warning: painting PicturePile without content! 11-06 01:35:44.149: W/PicturePileLayerContent(2179): Warning: painting PicturePile without content! 11-06 01:35:44.209: D/dalvikvm(2179): GC_FOR_ALLOC freed 931K, 32% free 3704K/5380K, paused 47ms, total 51ms 11-06 01:35:44.219: W/PicturePileLayerContent(2179): Warning: painting PicturePile without content! 11-06 01:35:44.279: I/Choreographer(2179): Skipped 99 […]

在Android 4.4 Webview中使用shadow-dom(Polymer)

实际上,我使用自定义的Polymer元素(基于Web组件和Shadow-dom)构build了一个Web应用程序,但是我遇到了一个严重的问题。 我希望这个应用能够在Android 4.4 WebView上运行,但是在WebView上testing应用时遇到了一些问题,尽pipe它在Chrome(Android和Desktop)上运行得非常好。 当我尝试从CSS(使用:: shadow或/ deep /)或从纯js访问一个shadowRoot元素时,会发生此问题。 这是我的问题的一个简单的例子: <!– custom-elt.html –> <link rel="import" href="../bower_components/polymer/polymer.html"> <polymer-element name="custom-elt"> <template> <div id="elt">some content</div> </template> <script> Polymer('custom-elt',{ getElt: function(){ return this.shadowRoot.getElementById('elt'); } }); </script> </polymer-element> // script.js window.addEventListener('polymer-ready',function(){ var e = document.getElementsByTagName('custom-elt')[0]; alert(e.getElt().innerHTML); }); 在Chrome上完美工作,但不在WebView中。 根据caniuse.com的说法,shadow-dom是由Android 4.4浏览器(它被WebView使用的)支持的,它带有'webkit'前缀( http://caniuse.com/#feat=shadowdom ),但是我没有'find一个使用前缀的方法。 任何解决scheme 谢谢 巴蒂斯特

Android Crosswalk Lite – Android Studio集成

我已经成功实现了Android Studio项目中的crosswalk webview项目。 基本上通过以下链接: https : //diego.org/2015/01/07/embedding-crosswalk-in-android-studio/ 熟悉实施人行横道的人知道,应用程序的大小增加了20-30mb。 出于这个原因,我一直在尝试整合精简版的人行横道。 这是+ – 10 MB,不幸的是没有成功。 正常的人行横道项目有一个maven版本可以在https://download.01.org/crosswalk/releases/crosswalk/android/maven2/org/xwalk/xwalk_core_library/ 精简版版本也有一个AAR版本在https://download.01.org/crosswalk/releases/crosswalk-lite/android/canary/,但没有POM文件,我不能在Android Studio中使用它。 现在我一直在尝试手动下载人行横道版本。 我创build了一个库项目,复制了所有相关的文件,创build了gradle文件并将其包含在一个小testing应用程序中。 到目前为止,一切似乎都没有问题。 应用程序编译。 所有类如XWalkView都可以在我的应用程序中使用。 运行应用程序的作品也是如此,除了webview是完全黑色的。 现在我认为它与libxwalkcore.so文件没有被加载的东西有关。 放在每个可以想象的文件夹(jar,jniLibs,lib等)中。 不工作。 在任何日志中没有错误。 问题我有,如果有人已经成功获得在Android Studio项目内工作的Lite版本。 顺便说一句。 crosswalk-lite图书馆应用程序的gradle文件包含: dependencies { compile files('libs/xwalk_core_library_java_library_part.jar') compile files('libs/xwalk_core_library_java_app_part.jar') }

Android中的WebView文本缩放问题

我在android中有一个文档阅读器项目。 主要活动包括一个WebView。 文本是从HTML阅读。 在顶部选项菜单中包含一个dynamic增加文本大小的button(文本正在打包)。 到目前为止如此清楚,但按下button时,文本大小有所增加,但所有文本都在屏幕上向下移动,按下button两次,文本大小增加,所有文本再次向下移动。 这种情况真的让读者感到沮丧。 阅读器按下button后,必须返回到停止的位置,以免阅读器丢失阅读位置。 如何解决这个问题呢? 问题: 解决问题的时候: 我的WebView的Html内容: <!DOCTYPE html> <head> <style type="text/css"> p{} p.x1{} p.x2{} p.x3{} p.x4{} h2.x1{} h2.x2{} h2.x3{} h2.x4{} </style> </head> <body> //paragraph-1 <p class="x1">Title-1</p> <p class="x2">Title-2</p> <p class="x3">Title-3</p> <p class="x4">Title-4</p> <p>Text content.</p> //paragraph-2 <h class="x1">Title-1</p> <h class="x2">Title-2</p> <p>Text content.</p> //paragraph-3 <h class="x3">Title-1</p> <h class="x4">Title-2</p> <p class="x3">Title-3</p> <p>Text content.</p> […]