android - Delphi 从 ios/Android 本地存储打开 PDF

标签 android ios delphi pdf

我尝试在移动设备上从本地存储打开 PDF 文件。

我已经把文件放到:

iOS 的启动\文档\

Android 的 Assets \内部\

使用此代码:

filename := TPath.Combine(TPath.GetDocumentsPath, 'file.pdf');
WebBrowser1.Navigate('file://' + filename);

在 iOS 上工作正常...正确打开 pdf

在 Android 上...没有..没有错误..没有 pdf...如果我尝试打开一个 html 文件..工作正常。

有什么建议吗?

安东内罗

最佳答案

{$IFDEF ANDROID}
Uses
   Androidapi.JNI.GraphicsContentViewText,
   Androidapi.Helpers,
   Androidapi.JNI.JavaTypes,
   Androidapi.JNI.Net;
{$ENDIF}

procedure btnPdfClick(Sender: TObject);
var
   fName       : String;
{$IFDEF ANDROID}
   Intent      : JIntent;
   URI         : Jnet_Uri;
{$ENDIF}
begin
    fName := TPath.GetSharedDownloadsPath + PathDelim + 'test.pdf';

    {$IFDEF ANDROID}
      URI := TJnet_Uri.JavaClass.parse(StringToJString('file:///' + fName));
      intent := TJIntent.Create;
      intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
      intent.setDataAndType(URI,StringToJString('application/pdf'));
      SharedActivity.startActivity(intent);
    {$ENDIF}
end;

关于android - Delphi 从 ios/Android 本地存储打开 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28699574/

相关文章:

java - 如何应用onClick函数打开它的URL

Android webview自定义错误页面

php - Android应用内购买服务器签名验证使用php OpenSSL

ios - 无法将其中包含的网页加载到 UIWebview

delphi - Delphi代码编辑器是否有很好的调整?

android - 如何将文本放在其 TextView 的中心?

ios - 是否可以在 ios 上打开/关闭来自不同应用程序的通知

android - 使用底部应用栏选项卡导航 - flutter

delphi - 这段代码中的构造函数不好。有人可以帮我管理这个代码吗?

如果按不同索引排序,Delphi 7 TClientDataSet 聚合不起作用