kmt*_*mtz 5 pdfview android-permissions flutter
我的目标是从 API 服务器下载文件(在本例中为 pdf 文件),然后我想加载该 pdf 并将其显示在 UI 上。我正在使用flutter_pdfview并且我正在遵循本教程如何实现它。首先,权限:在我的android/app/build.gradle targetSdkVersion是 29 以及compileSdkVersion. 在android/app/main/AndroidManifest.xml我下面写的<application ... android:requestLegacyExternalStorage="true"> ,我在同一个文件夹中添加了这些权限。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)
获取请求:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)
使用选项 1,我在内部存储中找到了 pdf 文件,但它仍然给我一个错误。像那个人那样使用选项 2,我在设备上的任何地方都找不到它。此外,我已在手机中手动授予存储访问权限,但这也无济于事。
Future<File> getFile(String id) async {
_isLoading = true;
notifyListeners();
var headers = {
'Authorization': 'JWT ${_authenticatedUser.token}',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
};
try {
final http.Response response = await http.get(
'api-host/pdf',
headers: headers);
var bytes = response.bodyBytes;
var dir = await getExternalStorageDirectory();// Option 1
//var dir = awiat getApplicationDocumentsDirectory(); //Option 2
File file = File("${dir.path}/mypdfonline.pdf");
File urlFile = await file.writeAsBytes(bytes);
if (response.statusCode != 200) {
_isLoading = false;
notifyListeners();
throw Exception('get error: statusCode= ${response.headers}');
}
_isLoading = false;
notifyListeners();
return urlFile;
} catch (e) {
_isLoading = false;
notifyListeners();
throw Exception("Error opening url file");
}
}
Run Code Online (Sandbox Code Playgroud)
您需要存储权限才能在设备存储上写入数据。您可以使用permission_handler插件来管理存储权限。
// Check for existing storage permission
if (await Permission. storage.request().isGranted) {
// Run after verifying storage permission
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1220 次 |
| 最近记录: |