标签: android-webview

使用"Powered by Chrome"打开自定义WebView使用操作菜单

我最近注意到,当在一些Android应用程序中打开链接时,它们具有类似的外观和自定义操作菜单以及自定义菜单下方的"Powered by Chrome".在这个中使用了什么组件或者它仍然是Chromium WebView?希望我希望将它们添加到我的下一个项目中,这些项目涉及在应用程序内打开链接.

LinkedIn App LinkedIn App

Twitter应用程序 Twitter应用程序

GMail App GMail App

android google-chrome android-webview

15
推荐指数
1
解决办法
4731
查看次数

如何为Android 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添加边框..?谢谢

android android-webview

14
推荐指数
2
解决办法
9387
查看次数

使用JavascriptInterface时未捕获TypeError

我目前正在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连接到我的手机调试我的应用程序时,真正的踢球者就是这一切.当我构建和发布应用程序时,它会中断.

我的智慧结束了.任何帮助或建议将不胜感激!

javascript android android-webview

14
推荐指数
1
解决办法
1万
查看次数

支持HTML5的最佳WebView设置?

我有兴趣确定用于显示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 android-webview

14
推荐指数
2
解决办法
2万
查看次数

使用Javascript在WebView中填写表单

我正试图从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)

当我以这种方式尝试时,网站会显示但表单中没有任何值.

在此先感谢您的帮助

javascript android android-webview

14
推荐指数
2
解决办法
2万
查看次数

WebView显示白色或空白页面

有谁知道为什么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.

谢谢

android android-webview

14
推荐指数
2
解决办法
2万
查看次数

通过Web浏览器和webview下载pdf

我正在访问一个有.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)

pdf android android-webview

14
推荐指数
2
解决办法
2万
查看次数

openFileChooser Android 4.4.4缺少文件名

目标:能够将任何类型的文件附加到<input type="file" />in webviewAndroid 4.1+.(Android 5+很好)

openFileChooser根据我发现的几个例子设置了我认为合适的东西.它的工作原理上4.1而不是在4.4.4哪里连接没有自己的文件名的文件正确设置.
相反,将文件名设置为intent.mData返回的最后一个路径onActivityResult,.eg,对于mDatacontent://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)

android webview android-webview android-4.4-kitkat

14
推荐指数
2
解决办法
1886
查看次数

响应式网站显示在移动宽度(不响应)的Web视图中以其他方式在Chrome中看起来不错

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)

截图

在此输入图像描述

java android webview android-webview

14
推荐指数
4
解决办法
4205
查看次数

Android Webview 有时无法呈现 pdf,而是显示空白/白页

  • 使用 google docs 在 webview 中打开 pdf
  • 一次又一次地打开相同的 pdf 或不同的 pdf。
  • 有时它会在android中显示空白/白色页面,直到我们再次刷新网页1或2次。

我已经在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)

c# java android android-webview xamarin.android

14
推荐指数
2
解决办法
3693
查看次数