我最近注意到,当在一些Android应用程序中打开链接时,它们具有类似的外观和自定义操作菜单以及自定义菜单下方的"Powered by Chrome".在这个中使用了什么组件或者它仍然是Chromium WebView?希望我希望将它们添加到我的下一个项目中,这些项目涉及在应用程序内打开链接.
在我的程序中,当按钮单击时,webview将以单独的布局加载.该布局只有该Web视图.我想为此添加边框.我将以下单独的XML添加到该webview的后台但不起作用.
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<stroke android:width="10dp" android:color="#000000" />
<padding android:left="2dp" android:top="2dp" android:right="2dp"android:bottom="2dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
如何在Android中为webview添加边框..?谢谢
我目前正在webview中以HTML格式向用户显示一堆数据.我在每个条目下面都有一些链接,单击时应该在我的应用程序中调用方法.Android WebView的javascript界面似乎是处理这些事情的最佳(唯一?)方式.但是,每当我单击该链接时,都会收到以下错误消息:ERROR/Web Console(6112): Uncaught TypeError: Object [my namespace]@4075ff10 has no method 'edit' at [base URL]:55
我声明了以下接口:
public class JavaScriptInterface {
Context context;
JavaScriptInterface(Context c) {
context = c;
}
public void edit(String postid) {
Log.d("myApp", "EDIT!");
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
然后我将它添加到我的WebView:
final WebView threadView = (WebView) findViewById(R.id.webViewThread);
threadView.getSettings().setJavaScriptEnabled(true);
threadView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
Run Code Online (Sandbox Code Playgroud)
最后,我在我的HTML中调用它如下:
<div class="post-actions">
<div class="right">
<a onClick="Android.edit('4312244');">Edit</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
当我通过模拟器或adb连接到我的手机调试我的应用程序时,真正的踢球者就是这一切.当我构建和发布应用程序时,它会中断.
我的智慧结束了.任何帮助或建议将不胜感激!
我有兴趣确定用于显示HTML5内容的WebView的最佳设置.
目前我正在使用:
mWebView.setFocusable(true);
mWebView.setFocusableInTouchMode(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setDatabaseEnabled(true);
mWebView.getSettings().setAppCacheEnabled(true);
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
Run Code Online (Sandbox Code Playgroud)
通过这些设置,html5test.com上的WebView得分189(w/1奖励).我想知道是否有任何设置我应该/可以改变以进一步兼容HTML5.当然,这个列表是几个月内编译的设置的合并,所以我也很容易被告知我做错了什么.我无法控制要显示的html内容,但我正在努力支持尽可能广泛的HTML5.
我正试图从Android中的Webview填充Webforms.我已经在这里找到了这段代码:自动填写webview中的字段
String username = "cristian";
webview.loadUrl("javascript:document.getElementById('username').value = '"+username+"';");
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不明白我要打开我要填写的页面.
setContentView(R.layout.web);
final WebView mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl(url);
String user="u";
String pwd="p";
mWebView.loadUrl("javascript:document.getElementById('username').value = '"+user+"';document.getElementById('password').value='"+pwd+"';");
Run Code Online (Sandbox Code Playgroud)
当我以这种方式尝试时,网站会显示但表单中没有任何值.
在此先感谢您的帮助
有谁知道为什么webview显示白页?这是代码
webView = (WebView) this.findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(THE_URL);
webView.setWebViewClient(new WebViewClient());
Run Code Online (Sandbox Code Playgroud)
这个函数也被称为:
@Override
public void onPageFinished(WebView view, String url) {
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?当然,错误不是来自XML,因为webview只显示某些URL.
谢谢
我正在访问一个有.pdf文件的网站.如果我通过Web浏览器打开该文档,它会开始下载它.如果我通过webview打开它,没有任何反应.我应该将什么设置应用于webview以使其开始下载?
我已经有了这个.
wvA.setDownloadListener(new DownloadListener()
{
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType,
long size)
{
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
viewIntent.setDataAndType(Uri.parse(url), mimeType);
try
{
startActivity(viewIntent);
}
catch (ActivityNotFoundException ex)
{
}
}
});
Run Code Online (Sandbox Code Playgroud) 目标:能够将任何类型的文件附加到<input type="file" />in webview中Android 4.1+.(Android 5+很好)
我openFileChooser根据我发现的几个例子设置了我认为合适的东西.它的工作原理上4.1而不是在4.4.4哪里连接没有自己的文件名的文件正确设置.
相反,将文件名设置为intent.mData返回的最后一个路径onActivityResult,.eg,对于mData值content://com.android.providers.downloads.documents/document/2,文件名将是2-without extension of course-而名称应为image.png.
我该怎么办才能修复它?我的代码会有问题吗?
我在模拟器上进行测试:Galaxy Nexus,API 19,目标:默认
请参阅下面的代码.
webView.setWebChromeClient(new WebChromeClient() {
public void openFileChooser(ValueCallback<Uri> valueCallback, String acceptType, String capture) {
if (UseWebViewActivity.this.valueCallback != null) {
UseWebViewActivity.this.valueCallback.onReceiveValue(null);
}
UseWebViewActivity.this.valueCallback = valueCallback;
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
contentSelectionIntent.setType("*/*");
startActivityForResult(Intent.createChooser(contentSelectionIntent,
getString(R.string.file_chooser_title)), INPUT_FILE_REQUEST_CODE);
}
});
// ...
protected void onActivityResult(int …Run Code Online (Sandbox Code Playgroud) 我webview用来加载响应式网站,但它显示移动大小以外的宽度.
我在移动Chrome浏览器中打开该链接,看起来不错......
我的意思是说宽度不适合手机的屏幕尺寸; 它显示宽度.
我也使用这些... <viewport>用于控制其演示的标签.
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
Run Code Online (Sandbox Code Playgroud)
另外我正在使用setInitialScale正确渲染webview.
webview.setInitialScale((int) 1.0);
Run Code Online (Sandbox Code Playgroud)
但我得到的网站负载没有响应,因为根据大小...它显示宽度超出屏幕尺寸...随滚动
应用程序在Lollipop,Marshmallow等中运行良好.但是在Jellybean等中不起作用.但是Link在所有设备中都能与最新的Chrome配合使用,但是无法正常工作webview.
我也设定了......
<meta name="viewport" content="width=device-width, initial-scale=1">
Run Code Online (Sandbox Code Playgroud)
截图
我已经在pdf上制作了样本。该项目的链接如下所示:
https://github.com/gopalawasthi123/PdfWebView
希望这能更好地帮助你。
public void SetWebView(WebView webview,string externalUrl){
webview.Tag = "webview";
webview.Settings.JavaScriptEnabled = true;
webview.Settings.SupportZoom ();
webview.Settings.SetAppCacheEnabled(true);
webview.Settings.DomStorageEnabled = true;
webview.ZoomOut ();
webview.ZoomIn ();
webview.Settings.BuiltInZoomControls = true;
webview.Settings.LoadWithOverviewMode = true;
webview.Settings.UseWideViewPort = true;
//webview.Settings.SetSupportZoom (true);
webview.Settings.SetPluginState (WebSettings.PluginState.On);
webview.Settings.GetPluginState ();
if (externalUrl.StartsWith("http://") || externalUrl.StartsWith("https://"))
webview.LoadUrl (externalUrl);
webview.SetWebViewClient (new MonkeyWebViewClient (imgViewBack, imgViewForward, imgRefresh));
webview.SetWebChromeClient (new WebChromeClient ());
}
Run Code Online (Sandbox Code Playgroud)