Articles of webview

Android WebView缩小限制

我在Android中使用WebView。 加载网页后,我想使用屏幕上的缩小控件。 点击一次或两次后,它变成灰色,不再允许我进一步缩小。 当我在代码中调用zoomOut()函数时,它也不会进一步缩小。 什么限制了我可以缩小多less。 我希望能够缩小比我所允许的更多 – 使页面太小而不能阅读。 但是,在达到这个缩放级别之前,缩小function已被禁用。 任何帮助是极大的赞赏。 谢谢,巴里。

Javascript不能在WebView Activity中工作

我有一个活动,只有一个WebView ,其中包含HTML,CSS和Javascript代码。 似乎JavaScript的访问问题的视图的屏幕大小 。 LogCat说: (Tag: Web Console): Uncaught TypeError: Cannot call method 'getWidth' of undefined at file:///android_asset/Prospekte/grund/html5-player/js/epaper-mobile.js:20 当我查看js文件时,有: var f=this.body.getWidth(); 有一件好奇的事情是, 有时代码是有效的 。 电子纸显示得很好。 但大多数时候都有这个错误。 setContentView(R.layout.prospekt_layout); final Activity activity = this; mWebView = (WebView) findViewById(R.id.prospekt_webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setDomStorageEnabled(true); mWebView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setProgress(progress * 1000); } }); mWebView.setWebViewClient(new WebViewClient() […]

如何使用Intentfilter处理OAuth URLcallback(如果使用webview进行身份validation)?

我正在开发一个应用程序使用OAuth身份validation,但我有一个小问题处理OAuthcallback。 authentication 我的应用程序有一个webview作为login屏幕,我被给了一个url加载auth窗体在我的webview。 假设这个url是: https://myoauthhost.com/oauth/auth?response_type=code&client_id=XXXXXXX&redirect_uri=YYYYYYYY&scope=ZZZZZZZZZZ 并在身份validation活动(AuthActivity.java)中,我有以下几点: String authURL = https://myoauthhost.com/oauth/auth?response_type=code&client_id=XXXXXXX&redirect_uri=YYYYYYYY&scope=ZZZZZZZZZZ myWebView.loadUrl(authURL); 在manifest.xml中,我有以下的oauthcallback处理: <activity android:name=".AuthActivity" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="authprovider" android:scheme="auth" /> </intent-filter> </activity> 问题 在webview中使用这个URL(使用loadURL()方法)redirect到包含REAL OAUTH WEB FROM (应该在web视图中加载)的另一个url。 问题是这个redirect会自动启动Android中的意图select :由于URL应该由Web浏览器处理,因此Android允许您select手机上可用的Web浏览器之一来打开URL。 由于这不是我想要的,我必须包含下面的代码,以便在webview中处理redirect,但不启动Web浏览器(或其他): myWebView.setWebViewClient(new WebViewClient()); 所以使用这个代码,redirect处理“在web视图”,我有login屏幕显示。 然后我可以input证书(例如:通过Twitter的oauth),但是当authentication完成时,接收到callback,但是接下来应该处理callback的活动(configuration为在清单中接收callback的AuthActivity)不会启动。 相反,我有webview显示一个消息说,urlcallback(在我们的例子中:authprovider:// auth / XXX?xxx = yyyconfiguration在清单中)无法find。 原因可能是下面的代码: myWebView.setWebViewClient(new WebViewClient()); […]

如果在WebChromeClient#onCreateWindow的callback中创buildwebview,则Android WebView addJavascriptInterface不起作用

以下是我的testing代码。 我的问题是,在页面二我不能引用AndroidFunction2 。 我正在用Android 4.4testingNexus 7。 但是在安卓4.0的sumsang i9100上可以。 我做错了什么,或者有一个Android的错误? 主要活动 public class MainActivity extends Activity { WebView mWebView1; WebView mWebView2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final FrameLayout mainFrame = (FrameLayout) this.findViewById(R.id.mainFrame); mWebView1 = new WebView(this); mWebView1.getSettings().setJavaScriptEnabled(true); mWebView1.getSettings().setSupportMultipleWindows(true); mWebView1.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } }); […]

把一个图像内的一个webview并适合它的宽度

我想用WebView来显示可能很大的图像(为了抓住内存pipe理)。 为了testing我在WebView中加载这个代码 <head></head> <body> <img alt="test" src="file:///android_asset/cute-cat-sleeping.jpg"> </body> 问题是,如果我把它加载到一个networking“原样”。 WebView只允许缩小,直到图像的第一个尺寸适合屏幕。 在这个例子中,图像高度完全显示在WebView中,然后不再允许缩放: 正如你所看到的,这个模式不允许全局图像的正确显示,尽pipe当图像被放大时,右下angular的行为是正确的,你可以看到这里 所以我尝试了(WebView).getSettings()。setUseWideViewPort(true) ,结果是我可以缩小比图像的宽度 放大的行为在右下angular的边框中不正确: 总结:我想最大缩小可能是imageWidth = webview的宽度和缩放行为,就像在第二个图像: 完整和/或有用的答案将得到支付 编辑:赏金为Vinayak.B开放

Android WebView在尝试从磁盘加载资源时抛出“只支持http的交叉源请求”exception

我已经在html / js中开发了一个单页面游戏,并且试图在android webview中托pipe它。 我有一个文件夹src/main/assets/www/和这行代码来引导我的应用程序: mWebView.loadUrl("file:///android_asset/www/index.html"); index.html加载一个app.js文件,这是我的游戏。 当我尝试从app.js中获取xhr请求以获取assets/myimage.svg (物理位置src/main/assets/www/assets/myimage.svg )时: var xhr = new XMLHttpRequest(); xhr.open('get', 'assets/myimage.svg', true); xhr.send(); 我得到这个错误: cross origin requests are only supported for http 。 为什么这是一个交叉来源的要求? 我能做些什么来解决这个问题? 我不能在一个http的web服务器上托pipesvg,也不能在app.js内联 – 它必须从磁盘加载。

显示空白页面的android webview

我有一个Android应用程序,我正在开发使用嵌套在一个嵌套在layoutlayoutembedded在一个linearlayout(垂直)的Android 2.3.3的模拟器。 不pipe我使用什么代码,它实际上从来没有做任何事情。 我有Android应用程序设置为互联网的权限。 即使只是试图加载HTML代码。 我得到一个空白的白页,没有错误没有什么。 logcat中也没有。 WebView wview = (WebView)findViewById(R.id.webView1); wview.getSettings().setJavaScriptEnabled(true); 我已经尝试所有这三个尝试加载任何东西到Web视图: wview.loadUrl("http://www.google.com"); wview.loadData("<HTML><BODY><H3>Test</H3></BODY></HTML>","text/html","utf-8"); wview.loadDataWithBaseURL(null, "<HTML><BODY><H3>Test</H3></BODY></HTML>","text/html","utf-8",null); 所有三个给我同样的结果。 没有。 有任何想法吗?

如何在Android中使用Webview.loadUrl进行渲染时显示加载条?

当使用webview来显示html页面时, 在完成渲染之前会有几秒钟的空白页面。 为了更好的用户体验,有没有办法在几秒钟内显示加载图片?

Android WebView总是为loadUrl上的getElementById返回null

我尝试从android客户端应用程序填写webview内的表单。 我知道它应该如何工作,但getElementById总是为我返回null。 我在不同的网站上尝试过。 这是我对www.google.com的示例。 MyWebView view = new MyWebView(this); view.getSettings().setJavaScriptEnabled(true); view.loadUrl("http://www.google.com"); view.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView v, String url) { v.loadUrl(url); return true; } @Override public void onPageFinished(WebView v, String url) { v.loadUrl("javascript:document.getElementById('mib').value = 'aaa';"); } }); setContentView(view); 和MyWebView类(仅供参考)。 class MyWebView extends WebView { Context context; public MyWebView(Context context) { super(context); this.context = […]

Android WebView似乎忽略了网页上的“视口”信息

我有一个使用视口META标签的网站告诉移动浏览器如何显示内容()。 在Android浏览器中查看页面看起来是正确的(和iPhone等)。 当我将页面加载到android应用程序中的WebView组件中时,WebView将忽略“VIEWPORT”标记,并以“完整”分辨率呈现页面,在此情况下将放大该分辨率。