如何在Android中将任何格式的base64数据加载到webview?

如何在Android中将任何格式的base64数据加载到webview?,android,webview,base64,Android,Webview,Base64,我正在实现一个与Webview相关的android应用程序。我从服务器获取base64数据字符串,数据格式可能是jpg或pdf文件或文档文件等 我想使用以下方法在webview中加载base64数据字符串: webview.loadData(urlString,“text/html;charset=utf-8”,null) 示例: String urlString = getIntent().getStringExtra("base64String"); String

我正在实现一个与Webview相关的android应用程序。我从服务器获取base64数据字符串,数据格式可能是jpg或pdf文件或文档文件等

我想使用以下方法在webview中加载base64数据字符串:

webview.loadData(urlString,“text/html;charset=utf-8”,null)

示例:

       String urlString = getIntent().getStringExtra("base64String");
       String mimeType = getIntent().getStringExtra("MimeType");

WebSettings settings = webView.getSettings();
    settings.setDefaultTextEncodingName("utf-8");
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
        String base64 = Base64.encodeToString(urlString.getBytes(), Base64.DEFAULT);
        webView.loadData(urlString, "text/html; charset=utf-8", "base64");
    } else {
        String header = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
        webView.loadData(header + urlString, "text/html; chartset=UTF-8", null);

    }
String urlString=getIntent().getStringExtra(“base64String”);
字符串mimeType=getIntent().getStringExtra(“mimeType”);
WebSettings=webView.getSettings();
setDefaultTextEncodingName(“utf-8”);
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.FROYO){
字符串base64=base64.encodeToString(urlString.getBytes(),base64.DEFAULT);
loadData(urlString,“text/html;charset=utf-8”,“base64”);
}否则{
字符串标题=”;
loadData(标题+urlString,“text/html;chartset=UTF-8”,null);
}
请提供一个好的示例,希望它能帮助您

byte[] imageRaw = null;
  try {
     URL url = new URL("http://some.domain.tld/somePicture.jpg");
     HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

     InputStream in = new BufferedInputStream(urlConnection.getInputStream());
     ByteArrayOutputStream out = new ByteArrayOutputStream();

     int c;
     while ((c = in.read()) != -1) {
         out.write(c);
     }
     out.flush();

     imageRaw = out.toByteArray();

     urlConnection.disconnect();
     in.close();
     out.close();
  } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
  }

  String image64 = Base64.encodeToString(imageRaw, Base64.DEFAULT);

  String urlStr   = "http://example.com/my.jpg";
  String mimeType = "text/html";
  String encoding = null;
  String pageData = "<img src=\"data:image/jpeg;base64," + image64 + "\" />";

  WebView wv;
  wv = (WebView) findViewById(R.id.webview);
  wv.loadDataWithBaseURL(urlStr, pageData, mimeType, encoding, urlStr);
byte[]imageRaw=null;
试一试{
URL=新URL(“http://some.domain.tld/somePicture.jpg");
HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection();
InputStream in=new BufferedInputStream(urlConnection.getInputStream());
ByteArrayOutputStream out=新建ByteArrayOutputStream();
INTC;
而((c=in.read())!=-1){
写出(c);
}
out.flush();
imageRaw=out.toByteArray();
urlConnection.disconnect();
in.close();
out.close();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
字符串image64=Base64.encodeToString(imageRaw,Base64.DEFAULT);
字符串urlStr=”http://example.com/my.jpg";
字符串mimeType=“text/html”;
字符串编码=空;
字符串pageData=“”;
网络视图;
wv=(WebView)findviewbyd(R.id.WebView);
loadDataWithBaseURL(urlStr,pageData,mimeType,encoding,urlStr);
试试看:

webView.loadData(urlString, "text/html; charset=utf-8", "base64");