标签: webview

Android的WebView可以自动调整大图像的大小吗?

在某些Web浏览器中,巨大的图像会自动调整大小以适应屏幕.

是否可以在Android WebView中执行相同的操作?

网页只包含图片,也许添加一些JavaScript可以做到这一点?
有人已经这样做了吗?

注意:我事先并不知道图像的大小.

android resize image webview

30
推荐指数
4
解决办法
4万
查看次数

在webview中安装网页内容(Android)

简单的问题.

我正在尝试拉伸webview的内容,以便可以看到整个网页.即没有滚动.我查看了文档,但无法找到缩放控件和setinitialscale之外的任何方法.

在这种情况下,setinitialscale的问题在于它对不同站点的工作方式不同.

示例:1:维基百科将按预期加载,缩放范围足够远.2:谷歌只会显示页面的中心.

下面是我的代码片段

    test1 = (WebView) findViewById(R.id.webview_test_1);
    test2 = (WebView) findViewById(R.id.webview_test_2);
    test3 = (WebView) findViewById(R.id.webview_test_3);

    test1.getSettings().setJavaScriptEnabled(true);
    test2.getSettings().setJavaScriptEnabled(true);
    test3.getSettings().setJavaScriptEnabled(true);

    test1.setInitialScale(12);
    test2.setInitialScale(12);
    test3.setInitialScale(12);

    test1.loadUrl("http://developer.android.com/resources/tutorials/views/hello-tablelayout.html");
    test2.loadUrl("http://www.wikipedia.org/");
    test3.loadUrl("http://www.google.com");
Run Code Online (Sandbox Code Playgroud)
test1.getSettings().setDefaultZoom(ZoomDensity.FAR);
Run Code Online (Sandbox Code Playgroud)

这似乎是我正在尝试做的一种替代方案,但我不能让它放大到足够远.

layout android stretch webview android-layout

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

Android 4.4在WebView的onReceivedError中给出了ERR_CACHE_MISS错误

我的布局中有一个webview.默认情况下,会在其中打开搜索表单.在搜索时,搜索表单下方会显示一个列表部分.如果单击列表中的任何链接,则会打开详细信息页面.现在我想控制webview的后退导航.我将此代码放在Activity中.

    @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {

            Log.d("TYPE", TYPE);

            WebView myWebView = null;
            if (TYPE.equalsIgnoreCase("REPORT_ACTIVITY"))
                myWebView = reportView;

            if (TYPE.equalsIgnoreCase("FEEDBACK_ACTIVITY"))
                myWebView = feedbackView;

            if (myWebView != null)
                // Check if the key event was the Back button and if there's history
                if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
                    myWebView.goBack();
                    return true;
                }
            // If it wasn't the Back key or there's no web page history, bubble up
            // to the default
            // system behavior (probably exit the activity) …
Run Code Online (Sandbox Code Playgroud)

android webview chromium webviewclient

30
推荐指数
3
解决办法
6万
查看次数

如何以编程方式滚动Android WebView

我正在尝试以编程方式将WebView滚动到DOM树中特定元素的位置.但到目前为止,我还没有能够让WebView响应滚动请求.我试过调用使用的JavaScript window.scrollTo(...),但WebView没有响应.在Java方面,我试过调用该WebView.flingScroll(...)方法.WebView会响应flingScroll,但我需要的是一种scrollTo(...)功能.有任何想法吗?

android scroll webview

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

Javascript回调函数传递给Android

我有一个用Java实现的javascript接口,由我在webview中加载的javascript代码调用.

JS Inside webview:

Android.myFunction(function(data){
    console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

Java的:

public class JavaScriptInterface {

    Context context;
    WebView webView;

    JavaScriptInterface(Context c, WebView w) {
        context = c;
        webView = w;
    }

    public void myFunction(String callback) {
        //when I log callback, it is "undefined"
         String someData = "Yay for data";
         String js =
             "javascript:(function() { "
                 + "var callback = " + callback + ";"
                 + "callback('" + someData + "');"
             + "})()";
        webView.loadUrl(js);
    }
}
Run Code Online (Sandbox Code Playgroud)

由webview加载的字符串最终为:

javascript:(function() {var callback = undefined; undefined();})()
Run Code Online (Sandbox Code Playgroud)

我有一些想法: …

javascript java android webview

29
推荐指数
3
解决办法
4万
查看次数

如何拦截android webview中的POST数据

我有一个包含webview的Android应用程序.它需要允许用户在网页上填写表单,然后在用户单击表单后更改表单的数据submit.表单将使用POST请求方法.

所以我的问题是,如何从表单中截取POST数据,更改它的值,然后发送它?

例如:如果有这样的Web表单......

<form action="http://www.example.com/do.php" method="post">
    <input type="text" name="name" />
    <input type="text" name="email" />
    <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

如果用户在表单中输入name = Steve和email = steve@steve.com,我想在android应用程序中将值更改为name = bob和email = bob@bob.com并将新POST发送给http://www.example.com/do.php.

谢谢你的帮助!

post android http webview

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

Scrollview中的Webview

我必须将WebView放入ScrollView.但是我必须在webview之前将一些视图放到同一个scrollview中.所以它看起来像这样:

<ScrollView
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
<LinearLayout
    android:id="@+id/articleDetailPageContentLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
  <LinearLayout
      android:id="@+id/articleDetailRubricLine"
      android:layout_width="fill_parent"
      android:layout_height="3dip"
      android:background="@color/fashion"/>

  <ImageView
      android:id="@+id/articleDetailImageView"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:adjustViewBounds="true"
      android:scaleType="fitStart"
      android:src="@drawable/article_detail_image_test"/>

  <TextView
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:padding="5dip"
      android:text="PUBLISH DATE"/>

  <WebView
      android:id="@+id/articleDetailContentView"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:background="@color/fashion"
      android:isScrollContainer="false"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我从后端获得了一些HTML信息.它没有任何身体或头部标签,只有被<p><h4>或其他标签包围的数据.它还有<img>标签.有时图片对于当前屏幕宽度来说太宽.所以我在HTML的开头添加了一些CSS.所以我将数据加载到webview,如下所示:

private final static String WEBVIEW_MIME_TYPE = "text/html";
    private final static String WEBVIEW_ENCODING = "utf-8";
String viewport = "<head><meta name=\"viewport\" content=\"target-densitydpi=device-dpi\" /></head>";
        String css = "<style type=\"text/css\">" +
            "img {width: 100%;}" +
            "</style>";
        articleContent.loadDataWithBaseURL("http://", viewport + css + articleDetail.getContent(), …
Run Code Online (Sandbox Code Playgroud)

android scrollview webview

29
推荐指数
4
解决办法
4万
查看次数

让Facebook登录使用Android Webview

我只是想在Android上的WebView上实现facebook登录.问题是我单击HTML页面上的facebook按钮并在Facebook对话框中插入用户名和密码.网址重定向只是给了我一个黑页.

   @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    WebView webview = new WebView(this);        
    webview.setWebChromeClient(new WebChromeClient());  
    webview.getSettings().setPluginState(PluginState.ON);
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webview.setWebViewClient(new WebViewClient());
    webview.loadUrl("http://peoplehunt.crowdscanner.com/hunt"); 
    setContentView(webview);
Run Code Online (Sandbox Code Playgroud)

这是我的HTML页面上的Facebook常规JavaScript API,当点击facebook按钮时会调用此函数.

$("#login_facebook").click(function() {

                    FB.login(function(response) {
                            //This function should be called
                            if (response.authResponse) {
                            FB.api('/me?fields=name,email,picture,id&type=large', function(response) {
                                    //console.log("email "+response.email);
                                    $("#submitHandle").hide();
                                    $("#loader").show();
                                    //console.log('Good to see you, ' + response.picture + '.');
                                    var theUsername = response.name;
                                    theUsername = theUsername.replace(/ /g, '_')+"_"+response.id+"@meetforeal.com";
                                    //console.log(theUsername);
                                    $("input[name=email]").val(encodeURIComponent(response.email));
                                    $("input[name=lastName]").val(encodeURIComponent(response.name));
                                    $("input[name=avatarImage]").val(response.picture);
                                    $("input[name=userName]").val(encodeURIComponent(theUsername));
                                    $("#msg_twitter").fadeIn("slow");
                                    $("#submitHandle").show();
                                    $("#loader").hide();
                                    $("#user").attr("action","/crowdmodule/auth/registerattendeefacebook");
                                    $("#user").submit();
                            });
                            } else {
  //console.log('User cancelled login or …
Run Code Online (Sandbox Code Playgroud)

javascript android facebook webview

29
推荐指数
3
解决办法
4万
查看次数

直接将html代码放入WebView(Android)

在使用WebView时,我们通常会为其添加一个URL:

WebView.loadUrl(myURL);
Run Code Online (Sandbox Code Playgroud)

但是可以直接放入HTML代码吗?因此它将符合以下逻辑:

WebView.loadContent ( <html><head><script></script></head><body>....</body></html> );
Run Code Online (Sandbox Code Playgroud)

谢谢.

html android webview

29
推荐指数
3
解决办法
3万
查看次数

带有嵌入式YouTube视频的Android WebView,全屏按钮冻结视频

我有一个Android webview加载一个wordpress博客.一些博客文章包含youtube视频,我希望用户可以根据需要全屏显示.问题是HTML5全屏按钮在单击时不执行任何操作但冻结视图.有任何想法吗?

youtube html5 android webview

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