Articles of webview

BaseLayerAndroid创build销毁日志消息

我正在一个活动中使用Web视图。 当我在手机上运行我的应用程序时,我能够看到很多(连续)与标签BaseLayerAndroid日志消息。 02-07 13:29:06.458: D/BaseLayerAndroid(27721): Creating BaseLayerAndroid = 0x1a328b8 02-07 13:29:06.505: D/BaseLayerAndroid(27721): Destroying BaseLayerAndroid = 0x1977130 02-07 13:29:06.560: D/BaseLayerAndroid(27721): Creating BaseLayerAndroid = 0x197fa88 02-07 13:29:06.599: D/BaseLayerAndroid(27721): Destroying BaseLayerAndroid = 0x1a328b8 02-07 13:29:06.653: D/BaseLayerAndroid(27721): Creating BaseLayerAndroid = 0x199fbd0 02-07 13:29:06.685: D/BaseLayerAndroid(27721): Destroying BaseLayerAndroid = 0x197fa88 02-07 13:29:06.755: D/BaseLayerAndroid(27721): Creating BaseLayerAndroid = 0x1ba8018 02-07 13:29:06.786: D/BaseLayerAndroid(27721): Destroying […]

Jellybean / ICS Android HTTP Post方法+ WebView.RestoreState

我正在使用API​​ 17模拟器来testing包含Web视图的页面。 webview首先使用GET方法加载一个页面。 然后,用户使用HTTP POST方法提交Web表单,导致第二个页面加载。 此时,如果我旋转屏幕,则会收到下面显示的“网页不可用”错误。 只有在使用POST方法加载页面时才会发生这种情况。 注意:我试图使用webview.restoreState来恢复webview的状态(见下面的代码)。 有什么办法可以告诉Android重新发布表单数据并重新加载页面,而不是显示这个错误信息? 我不能在KitKat,棒棒糖或姜饼上重现同样的问题…我只能在Jellybean和Ice Cream Sandwich上重现这个问题… 我也确认这是运行Jellybean的Nexus 7设备上的一个问题,所以它不是一个模拟器的问题。 注意:在使用类似android:configChanges =“orientation | keyboardHidden”的东西时,我并不特别感兴趣。 据我了解,这可能会解决我的轮换问题,但如果活动状态需要恢复其他原因,问题可能会再次出现。 截图: 步骤#1:正常加载WebView 步骤2:提交表单(使用HTTP Post方法) 步骤3:旋转屏幕触发webview.restoreState – 发生错误 码: 这里是一些示例代码,以配合我的问题。 代码是在Mono C#中,但应该几乎与Java相同。 public class MainActivity : Activity { WebView webview; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); webview = new WebView(this); SetContentView(webview); if (bundle == null) webview.LoadUrl("http://2-dot-npwc-services.appspot.com/test-post.jsp"); […]

Android Web视图错误I /铬:“未捕获的ReferenceError:

我有一个networking服务在我已经添加了条码阅读器的Android 所以借助JavaScript的帮助,我正在从web-view中调用我的条形码阅读器 所以我跟着这个 并在服务器端devise…我有这个 在JavaScript function mybarcd() { MyApp.mybarcdt(); } function actfromAnd(msg){ document.getElementById("brcd").value = msg; } at HTML/PHP <div class="data"> <input id="brcd" type="text" value=""/> <button type="button" onClick="mybarcd()">SCAN</button> </div> 在Android端 在webview中 webView.addJavascriptInterface(new WebAppInterface(this), "MyApp"); 和新的js界面 @JavascriptInterface public void mybarcdt() { IntentIntegrator intentIntegrator = new IntentIntegrator(Main_A.this); intentIntegrator.setBeepEnabled(true); intentIntegrator.setOrientationLocked(true); intentIntegrator.setPrompt("Scan Barcode"); intentIntegrator.initiateScan(); } @Override protected void onActivityResult(int requestCode, […]

如何显示在Android Webview水库原始文件夹中的HTML页面?

我有一个网页存储在Android应用程序的res / raw文件夹中。 我想访问它并在我的活动中的web视图中加载它。 任何人都可以告诉我,我该怎么做。 我努力了 webView.loadUrl(getResources().openRawResource(R.raw.myHtmlPage).toString()); 但它的工作,而不是一个破碎的页面。 请帮助我。 关于FAS

在Android上显示一个有很好performance的巨大地图?

我是6个月前开始Android开发的“初学者”。 我真的对这个话题充满激情,我读了几本书: 了解适用于Android开发的Java ; 适用于绝对初学者的Android应用程序 ; 从Android 4开始(开始Apress) ; Pro Android 4(专业版) ; 马克墨菲的书籍副本(因为亚马逊没有Kindle版本)。 这些书使我能够理解Android的工作方式。 但是现在缺乏的是…经验。 于是我决定为一个项目做出贡献,其目标是展示一张巨大的地铁地图 – 当然,这个项目的目标更广泛,但是谈论这个问题与这个问题无关。 地图是离线存储在我的应用程序包中。 使用什么? Google地图无法使用,因为我的应用程序的地图与Google地图几乎没有任何关系。 使用一个简单的ImageView来显示地图是“不可能的”,因为缩放,平移等不被支持,编码这自己远远超出我的能力。 我发现唯一不错的解决方法是使用WebView,因为支持缩放和平移 。 而且,只使用一个大的图像不能做到这一点:它会导致极端的图像质量损失 。 问题是什么 我不能使用单个图像,因为当图片高于1300px左右时,Android会自动降低质量(请参阅上面的链接)。 我想以最低2000px的分辨率显示我的地图( xhdpi屏幕在1280像素宽的屏幕上显示整个图像,但我希望它们也可以缩放)。 使用多密度图像(你知道,不同版本的ldpi , mdpi , hdpi和xhdpi设备)是不可能的,只要他们大幅增加APK的文件大小… 通过将我的地图分成5个不同的图块 ,并且只对所有屏幕密度使用一个图像,一切似乎都不坏…除了WebView的性能是可怕的 。 最后的解决scheme的代码 我把我的巨大的地图分成5个不同的地图块,这些地图块基本上是横向格式的矩形。 我把它们全部(map [1-5] .jpg)加上一个HTML文件(map.html)到./assets/文件夹中。 HTML文件的代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> […]

WebView引发Receiver未注册:android.widget.ZoomButtonsController

我发现在我的应用程序(野外)中偶尔会出现这种exception。 WebView是用来显示一个JPG(使用Android版本/设备的缩放/滚动function,而不是重新发明轮子,做所有reflection的东西)。 我不知道为什么这个例外最终会出现。 基本上我只能想到一个Android错误。 我做什么(在GUI线程中的一切): 首先显示一个缩略图作为预览 set getSettings()。setBuiltInZoomControls(false) 当正常的图片加载时,反而显示那一个 set getSettings()。setBuiltInZoomControls(true) 为什么设置ZoomControls打开/closures:拇指不应该是可缩放的,因为一旦常规图片可用并且显示,WebView在loadData上重置该缩放。 会有一些不好的用户体验。 示例设备发生这种情况:HTC Desire @ htc_wwe / htc_bravo / bravo / bravo:2.2 / FRF91 / 226611:用户/释放键 我有完全相同的设备/软件,它从来没有发生过我… 有任何想法吗? 问候,奥利弗

Android WebView新窗口URL

我遇到了一个Android WebView的问题,我想在同一个WebView打开一个target='_blank'的URLs ,就像所有其他URLs都打开一样。 还要注意,即时通讯覆盖WebViewClient 的这个方法'shouldOverrideUrlLoading ',为了处理URLredirect(以便所有的URLredirect都在我的WebView中打开),但在URL的情况下target='_blank'这个方法不会被触发。 请帮助! 提前致谢。

Twitter Bootstrap在Android WebView中不起作用

HTML文件(test.html)是 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <link href="bootstrap.css" rel="stylesheet" type="text/css"/> <link href="bootstrap-responsive.css" rel="stylesheet" type="text/css"/> </head> <body> <h1>Hello World!!!</h1> <a class="btn btn-primary btn-large"> Learn more </a> </body> </html> HTML和引导CSS文件放置在资产文件夹中。 如果我在IE / Firefox中打开HTML文件,则显示正确。 但是Android WebView不能正确渲染 WebView的代码是 WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); String url = "file:///android_asset/test.html"; webView.loadUrl(url); IE呈现这样 WebView呈现像这样 哪里不对?

如何在Android中自动滚动到input字段,当软键盘显示时与它们重叠?

我正在开发使用Worklight的混合应用程序,并且遇到以下问题: 当用户点击一个input字段时,popup的软键盘隐藏input字段,当input字段在屏幕上较低时。 该页面是可滚动的,所以用户可以滚动并再次看到该字段,但客户要求定义了页面将自动滚动,直到该字段可见。 请注意,这只发生在Android环境中。 在iPhone和iPad环境中,默认行为就是所需的行为。 根据我的发现,这个技巧应该通过Android清单文件中的android:windowSoftInputMode属性完成。 但是,我所有的努力都没有实现自动滚动。 如果有一个特定于Worklight的解决scheme,我宁愿使用它,而不是介入Android本机代码。

如何停止Android中的WebView的INTERNAL滚动?

我在我的应用程序中有一个WebView,其中呈现HTML内容,HTML内容的大小大于WebView的大小。 由于用户在其上拖动手指时,其中的内容正在滚动。 我想停止内容滚动正在发生的内容。 下面我已经试过了: WebView view = new WebView(context); //context is of Activity view.setHorizontalScrollBarEnabled(false); view.setVerticalScrollBarEnabled(false); view.setScrollContainer(false); 并在CSS中: overflow : hidden !important; 请build议解决scheme,除了禁用手指拖动 (黑客)的Web视图,因为这会干扰我的其他function,如下所示: @Override public boolean onTouch(View view, MotionEvent motionEvent) { if(motionEvent.getAction() == MotionEvent.ACTION_MOVE) { return true; } }