当前位置: 首页 > 知识库问答 >
问题:

Android Web视图无法从Amazon服务Url查看PDF

姚俊材
2023-03-14

以下是我的代码供您参考:

 webView.getSettings().setJavaScriptEnabled(true);
 webView.getSettings().setPluginState(PluginState.ON);
 String url = Common.getPdfFromAmazon("52f3761d290c4.pdf");   
 webView.loadUrl(url);

Android Menifest.xml also give Internet Permission:
**<uses-permission android:name="android.permission.INTERNET" />**

i can also try this "http://docs.google.com/gview?embedded=true&url=" + url ;

谢谢你。

共有1个答案

蔡楚
2023-03-14

为了显示来自amazon web service的PDF,您需要首先下载PDF并将其存储到您的设备上,然后通过设备上可用的PDF Reader/Viewer应用程序打开它。

1>>调用downloadfileasync()来调用下载过程并传递您的amazon web服务URL。

new DownloadFileAsync().execute(url);

2>>在AsyncTask中执行下载PDF的过程。

class DownloadFileAsync extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(final String... aurl) {

        try {
            String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
            File dir = new File(extStorageDirectory, "pdf");
            if(dir.exists()==false) {
                dir.mkdirs();
            }
            File directory = new File(dir, "original.pdf");
            try {
                if(!directory.exists())
                    directory.createNewFile();
            } catch (IOException e1) {
                e1.printStackTrace();
            }

            URL url = new URL(aurl[0]);
            URLConnection conexion = url.openConnection();
            int lenghtOfFile = conexion.getContentLength();
            conexion.connect();
            conexion.setReadTimeout(10000);
            conexion.setConnectTimeout(15000); // millis

            FileOutputStream f = new FileOutputStream(directory);

            InputStream in = conexion.getInputStream();

            byte[] buffer = new byte[1024];
            int len1 = 0;
            while ((len1 = in.read(buffer)) > 0) {
                f.write(buffer, 0, len1);
            }
            f.flush();
            f.close();
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;

    }

    @Override
    protected void onPostExecute(String unused) {
    }
}
public static  void showPdfFromSdCard(Context ctx) {
    File file = new File(Environment.getExternalStorageDirectory() + "/pdf/original.pdf");
    PackageManager packageManager = ctx.getPackageManager();
    Intent testIntent = new Intent(Intent.ACTION_VIEW);
    testIntent.setType("application/pdf");
    List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY);
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    Uri uri = Uri.fromFile(file);
    intent.setDataAndType(uri, "application/pdf");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    try {
        ctx.startActivity(intent);
    } catch (ActivityNotFoundException e) {
        Toast.makeText(ctx,
                "No Application Available to View PDF",
                Toast.LENGTH_SHORT).show();
    }
}
public static void deletePdfFromSdcard(){
    File file = new    File(Environment.getExternalStorageDirectory()+"/pdf/original.pdf");
    boolean pdfDelete = file.delete();
}
 类似资料:
  • 主要内容:查看视图的字段信息,查看视图的详细信息,拓展阅读创建好视图后,可以通过查看视图的语句来查看视图的字段信息以及详细信息。本节主要讲解如何使用 SQL 语句来查看视图的字段信息以及详细信息。 查看视图的字段信息 查看视图的字段信息与查看数据表的字段信息一样,都是使用 DESCRIBE 关键字来查看的。具体语法如下: DESCRIBE 视图名; 或简写成: DESC 视图名; 示例 1 下面创建学生信息表 studentinfo 的一个视图,用于查询

  • 我有下面的屏幕(图像),当按下按钮时,它会显示一个侧菜单。菜单会出现,另外我还有一个uitableview来显示其他内容 我的问题是,当侧菜单出现时,uitableview的大小会调整。 我如何保持我的uitableview完整?我一直在尝试下一个,但我没有得到任何东西:

  • 我首先将一幅图像保存到Google云存储中,同时将mime类型设置为“image/png”,并以文件结尾随机命名,例如“.png”。文件似乎存储正确。我可以在数据存储查看器中看到它们: 但如果我尝试用com再次加载它。谷歌。阿彭金。api。图像。ImagesService和调用ImagesService。getServigUrl(),它抛出错误: 所以这似乎认为这不是一个图像。但为什么呢?它有mi

  • 在Firebase仪表板中查看我的服务器密钥时,服务器密钥被切断,我不确定如何查看整个字符串: 传统服务器密钥有一个复制按钮,我可以使用,但新的服务器密钥没有。 如何复制或查看我的完整新服务器密钥?

  • 我在上传到谷歌云存储的图像文件上创建了一个imageServing url,使用: 但似乎没有删除此url的方法。可用方法“deleteServingUrl”接受一个我不使用的bloKey。 这是否意味着我不需要删除servingUrl? ///////编辑 将Appengine与objectify一起使用。创建了一个servlet,UserImageEndpoint在web中定义了它。xml格式

  • 问题内容: 当我在Amazon Linux AMI上安装Jenkins时,请按照http://bhargavamin.com/how-to-do/install- jenkins-on-amazon-linux-aws/中 提到的步骤进行操作 安装后,我能够通过浏览器打开Jenkins,但是当我选择“ 安装插件 ” 选项时,它显示为“无法连接到Jenkins Server”错误。 那么如何解决此问