标签: android-webview

如何在webview中加载html字符串?

我有一个包含这个的html字符串:

    <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="spanish press" content="spain, spanish newspaper, news,economy,politics,sports">  
      <title></title>
      </head>
      <body id="body">  
<!-- The following code will render a clickable image ad in the page -->
        <script src="http://www.myscript.com/a"></script>
      </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

我需要在android中将该网站显示为webview.

我试着用这一切:

webView.loadDataWithBaseURL(null, txt, "text/html", "UTF-8", null);
webView.loadDataWithBaseURL("x-data://base", txt, "text/html", "UTF-8", null);      
webView.loadDataWithBaseURL("notreal/", txt, "text/htm", "utf-8",null);
Run Code Online (Sandbox Code Playgroud)

我也尝试删除DOCTYPE标签:

txt=txt.replace("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">", "");

没有人有工作.我刚刚实现了将字符串显示到webview(html代码),但不是必须使用该html代码创建的网站.

怎么了?

android webview android-webview

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

将Android资源加载到WebView中

我有一个显示漫画书的Android应用程序.为了利用内置的缩放控件,我正在加载图片,WebView如下所示:

webView.loadUrl("file:///android_asset/page1.jpg");
Run Code Online (Sandbox Code Playgroud)

然而,这工作正常,因为图像在资源文件夹中,它们没有被压缩,这使得我的.apk非常大.我想知道如何引用资源文件(从res/drawable文件夹)与我上面的资产一样的文件路径.有谁知道那条路会是什么样的?我尝试过"file:///res/drawable/pagetitle.jpg"没有成功的事情.谢谢您的帮助.


更新:

我发现那"file:///android_res/drawable/page1.jpg"是我正在寻找的道路.

android android-webview

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

m_mainFrame-> editor() - > hasComposition没有问题

在我的应用程序中,我已经在android webview中加载了MVC页面.MVC页面有两个用于用户名和密码的文本编辑器.在关注文本框时,我收到警告:m_mainFrame->editor()->hasComposition not.

为什么我收到这个警告?

注意:我将android从2.1升级到2.3.6后出现此错误

日志:

08-21 12:10:21.269: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:21.669: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:21.699: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:21.709: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:22.169: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:22.199: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:22.209: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:22.239: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:22.259: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:22.739: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:22.769: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:22.939: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:22.959: D/CONTEXT(2928): m_mainFrame->editor()->hasComposition not 
08-21 12:10:23.429: …
Run Code Online (Sandbox Code Playgroud)

android android-webview

45
推荐指数
1
解决办法
1627
查看次数

如何覆盖android webview os 4.1+的默认文本选择?

在发布这个问题之前,我已经搜索了很多,但在这个问题上找不到任何明确的答案.

我必须覆盖android webview的默认文本选择并显示我的自定义文本选择对话框选项.我试过这个示例代码项目.

此示例项目适用于以下设备和模拟器:

  • Acer Iconia a500平板电脑:10英寸:Android OS - 3.0
  • Acer Iconia a500平板电脑:10英寸:Android OS - 3.2
  • 三星Galaxy Tab:10英寸:Android OS - 4.0
  • 三星Galaxy Tab:7英寸:Android OS - 4.0
  • 模拟器:Skin-WVGA800:Android OS - 4.1.2

不适用于以下设备:

  • 三星Galaxy Tab:10英寸:Android OS - 4.1.2
  • 三星Galaxy Tab:7英寸:Android OS - 4.1.2

在Android操作系统版本4.1和4.1+而不是显示我的自定义文本选择选项对话框,它显示Android系统的文本选择的默认操作栏.

我对此进行了大量搜索,很多人建议使用onLongClick()方法接口

我已经在这个论坛上问了一个问题请看这个链接,这个问题的答案我能够克隆onLongClick()事件,但我无法停止默认文本选择操作栏.

对于这种情况,我几乎没有问题.

1.为什么onLongClick()方法停止在android os 4.1+上运行的设备上工作?

2.如果长按webview中的文本,如何停止默认文本选择操作栏?

这是我的自定义webview类.

  package com.epubreader.ebook;
  import org.json.JSONException;
  import org.json.JSONObject;
  import android.app.Activity;
  import android.content.Context;
  import android.graphics.Rect;
  import android.graphics.Region;
  import android.os.Handler;
  import android.os.Message;
  import android.util.AttributeSet;
  import android.util.DisplayMetrics;
  import …
Run Code Online (Sandbox Code Playgroud)

android textselection android-webview

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

evaluateJavascript如何工作?

我正在尝试在Android 4.4中使用新的evaluateJavascript方法,但我得到的所有内容都是null结果:

webView1.evaluateJavascript("return \"test\";", new ValueCallback<String>() {
    @Override
    public void onReceiveValue(String s) {
        Log.d("LogName", s); // Log is written, but s is always null
    }
});
Run Code Online (Sandbox Code Playgroud)

如何将结果返回此方法?

更新:更多信息:

  1. 我有INTERNET权限集
  2. 我有 setJavascriptEnabled(true);
  3. 试过撇号字符串:return 'test';,
  4. 试过JS对象: return { test: 'this' }
  5. console.log('test'); 正在执行罚款.
  6. 按照以下方式设置targetSdkVersion为19:如果您的应用使用WebView

设备: Nexus 7和Nexus 5(股票)

android android-webview android-4.4-kitkat

45
推荐指数
5
解决办法
8万
查看次数

Android WebView,缩放图像以适应屏幕

我有:我正在从URL加载图像.我只是这样做(WebView).loadUrl(imageurl, extraheaders)

我得到的:图像没有在WebView的全宽处显示,它周围有空白区域(就像你在桌面浏览器中打开一点点)

我尝试了什么:将LayoutAlgorithm设置为SINGLE_COLUMN.工作完美,但缩放不起作用.(我已经启用它了不WebView.getSettings()知道为什么.设置setUseWideViewPort(true);加载图像没有任何空白空间,但它完全放大.

android android-webview

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

YouTube视频无法在WebView中播放 - Android

我想在WebView中播放YouTube视频,WebView首先显示带有播放按钮的视频,但点击播放按钮后开始进度条,2-3秒后停止进度条和黑色屏幕空白.

Image1:视频首先看播放按钮

Image2:点击播放按钮后屏幕变为空白.

请!帮助我为什么视频没有开始.

IMAGE:1 这是Web视图的第一眼

IMAGE:2 在此输入图像描述

这是我在webview中播放YouTubeVideo的源代码..请帮帮我...

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    WebView wv = (WebView) findViewById(R.id.webView1);
    wv.getSettings().setJavaScriptEnabled(true);
    wv.getSettings().setPluginsEnabled(true);
    final String mimeType = "text/html";
    final String encoding = "UTF-8";
    String html = getHTML();
    wv.loadDataWithBaseURL("", html, mimeType, encoding, "");
}

public String getHTML() {
    String html = "<iframe class=\"youtube-player\" style=\"border: 0; width: 100%; height: 95%; padding:0px; margin:0px\" id=\"ytplayer\" type=\"text/html\" src=\"http://www.youtube.com/embed/"
            + "J2fB5XWj6IE"
            + "?fs=0\" frameborder=\"0\">\n"
            + "</iframe>\n";
    return html;
}
Run Code Online (Sandbox Code Playgroud)

youtube video android android-webview

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

如何在Android WebView中加载网页标题?

我在我的应用程序中使用WebView,我需要根据用户所在的页面更改应用程序标题.我怎样才能在Android WebView中执行此操作?

我通过以下方式在iphone中做到了这一点

self.title = [webPage stringByEvaluatingJavaScriptFromString:@"document.title"]

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Adds Progrss bar Support
        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.webview );

        // Makes Progress bar Visible
        getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); 

        mWebView = (WebView) findViewById( R.id.webview ); //This is the id you gave 
        //to the WebView in the main.xml
        mWebView.getSettings().setJavaScriptEnabled(true);   
        mWebView.getSettings().setSupportZoom(true);       //Zoom Control on web (You don't need this 
        //if ROM supports Multi-Touch      
        mWebView.getSettings().setBuiltInZoomControls(true); //Enable Multitouch if supported by ROM

        // Load URL
        Bundle b = getIntent().getExtras();
        String url = b.getString("url"); …
Run Code Online (Sandbox Code Playgroud)

android android-webview

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

React Native WebView html <select>无法在Android平板电脑上打开选项

<select>在Android平板电脑上使用HTML 标签在React Native的WebView中遇到了一个非常奇怪的问题.出于某种原因,点击渲染<select>按钮不会打开选项列表.

这只发生在Android平板电脑上,无论Android版本如何.但是,在Android智能手机上,不会发生此错误,并且选项列表会按预期打开.

为了重现这个bug,我创建了一个简单的演示应用程序:https://github.com/huonderv/react-native-webview-html-select-bug.

重要的代码如下:

index.android.js

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  WebView
} from 'react-native';

export default class WebViewProject extends Component {
  render() {
    return (
      <WebView
        style={styles.container}
        source={{ uri: 'file:///android_asset/simpleselect.html'}}
        startInLoadingState={true}
      />
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
});

AppRegistry.registerComponent('WebViewProject', () => WebViewProject);
Run Code Online (Sandbox Code Playgroud)

simpleselect.html

<!DOCTYPE html>
<html>
  <body>    
    <select>
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="opel">Opel</option> …
Run Code Online (Sandbox Code Playgroud)

javascript android android-webview react-native react-native-android

42
推荐指数
1
解决办法
1099
查看次数

Android ProgessBar在加载WebView时

在我的应用程序中,我有一个WebView从Internet加载任何URL.现在,有时由于网络速度慢,页面需要很长时间才能加载,用户只能看到一个空白屏幕.

我想显示ProgressBar的同时WebView被加载和隐藏ProgessBarWebView被完全加载.

我知道如何使用ProgressBarAsyncTasks,但这是我的问题.

这是我用来加载我的代码WebView.

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setWebViewClient(new HelloWebViewClient());
    mWebView.loadUrl(web_URL);
Run Code Online (Sandbox Code Playgroud)

这是我的自定义WebViewClient课程

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试显示ProgressBar使用AsyncTasks然后我想我必须给代码加载doInBackGround()我的函数中的URL AsyncTask并通过该onProgressUpdate()函数显示进度.

但是,如何在doInBackground()中加载URL,因为doInBackground()非UI线程上运行,我无法在其中使用mWebView.loadUrl(web_URL).

有什么建议?我错过了一些明显的东西吗 请指导我.

android android-webview android-progressbar android-asynctask

39
推荐指数
5
解决办法
6万
查看次数