目前我从服务器获取Base64
编码的字符串,此Base64
可以是pdf文件,也可以是.doc, .xls, .ppt, .jpg, .png, .mov, .txt
等其他格式,那么如何加载{{1}在Base64
?
答案 0 :(得分:0)
我认为如果在webview中打开它,最好使用android中的默认安装应用程序打开文件。例如,以下代码将打开一个pdf文件: -
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File(“your file path”);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
startActivity(intent);
为此,您必须将base64数据解码为实际文件。然后,您可以触发该文件的意图。您还需要提供要打开的文件的mime类型。在上面的示例" application / pdf "是pdf文件的mime类型。 Android系统将自动显示可用于打开文件的已安装应用程序列表。
您可以找到mime类型列表from this link.
答案 1 :(得分:0)
使用服务器的直接URL打开文件。不要转换你的文件。
使用Google Drive Weburl加载文件网址。
@BindView(R.id.webView)
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_open_any_doc);
ButterKnife.bind(this);
String url = "http://www.adobe" +
".com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf";
String googleDoc = "http://drive.google.com/viewerng/viewer?embedded=true&url=";
webView.getSettings().setJavaScriptEnabled(true);
// webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setAllowFileAccess(true);
// String doc="<iframe src='http://docs.google.com/viewer?url=+location to your PDF File+'
// width='100%' height='100%'
// style='border: none;'></iframe>";
final Activity activity = this;
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int progress) {
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 1000);
}
});
webView.loadUrl(googleDoc + url);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
}
找到下面的XML!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.aw.avi.allutilsmethodsapp.ui.activity.webviews.OpenAnyDocActivity">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
否则如果您要加载这些文件,请使用特定应用程序或添加不同的软件。