国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Flutter】支持多平臺(tái) 多端保存圖片到本地相冊(cè) (兼容 Web端 移動(dòng)端 android 保存到本地)

這篇具有很好參考價(jià)值的文章主要介紹了【Flutter】支持多平臺(tái) 多端保存圖片到本地相冊(cè) (兼容 Web端 移動(dòng)端 android 保存到本地)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

免責(zé)聲明: 我只測試了Web端 和 Android端 可行哈文章來源地址http://www.zghlxwxcb.cn/news/detail-696880.html

import 'dart:io';
import 'package:flutter/services.dart';
import 'package:http/http.dart' as http;
import 'package:universal_html/html.dart' as html;
import 'package:oktoast/oktoast.dart';
import 'package:image_gallery_saver/image_gallery_saver.dart';
import 'package:permission_handler/permission_handler.dart';




//申請(qǐng)存 本地存儲(chǔ) 和 相冊(cè) 權(quán)限
Future<bool> getPhotoPermission() async {
  if (Platform.isIOS) {
    var storageStatus = await Permission.storage.status;
    var photosStatus = await Permission.photos.status;
    if (storageStatus.isDenied || photosStatus.isDenied) {
      Map<Permission, PermissionStatus> statuses = await [
        Permission.storage,
        Permission.photos,
      ].request();
    }
    return storageStatus.isGranted && photosStatus.isGranted;
  } else {
    var storageStatus = await Permission.storage.status;
    var photosStatus = await Permission.photos.status;
    if (storageStatus.isDenied || photosStatus.isDenied) {
      Map<Permission, PermissionStatus> statuses = await [
        Permission.storage,
        Permission.photos,
      ].request();
    }
    return storageStatus.isGranted && photosStatus.isGranted;
  }
}

// 根據(jù)網(wǎng)絡(luò)路徑保存圖片到相冊(cè)
Future<void> saveImage(String imageUrl) async {
  final response = await http.get(Uri.parse(imageUrl));
  final bytes = response.bodyBytes;


  if (kIsWeb) {
    final imageData = Uint8List.fromList(bytes);
    final blob = html.Blob([imageData], 'image/jpeg');
    final url = html.Url.createObjectUrlFromBlob(blob);
    final anchor = html.AnchorElement(href: url);
    String timestamp = DateTime.now().millisecondsSinceEpoch.toString();
    anchor.download = 'image_$timestamp.jpg';
    anchor.click();
    html.Url.revokeObjectUrl(url);
  } else {
    if (Platform.isAndroid || Platform.isIOS) {
      bool permission = await getPhotoPermission();
      if (permission) {
        if (Platform.isIOS) {
          // 自動(dòng)以時(shí)間戳命名
          final result = await ImageGallerySaver.saveImage(bytes);
          if (result != null) {
            showToast("保存成功");
          } else {
            print('error');
          }
        } else {
          //安卓
          // 自動(dòng)以時(shí)間戳命名
          final result = await ImageGallerySaver.saveImage(bytes);
          if (result != null) {
            showToast("保存成功");
          } else {
            print('error');
          }
        }
      } else {
        //重新請(qǐng)求--第一次請(qǐng)求權(quán)限時(shí),保存方法不會(huì)走,需要重新調(diào)一次
        saveImage(imageUrl);
      }
    } else {
      throw PlatformException(
        code: 'PLATFORM_NOT_SUPPORTED',
        message: 'Saving images is not supported on this platform.',
      );
    }
  }
}

到了這里,關(guān)于【Flutter】支持多平臺(tái) 多端保存圖片到本地相冊(cè) (兼容 Web端 移動(dòng)端 android 保存到本地)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uni-app 經(jīng)驗(yàn)分享,從入門到離職(實(shí)戰(zhàn)篇)——模擬從后臺(tái)獲取圖片路徑數(shù)據(jù)后授權(quán)相冊(cè)以及保存圖片到本地(手機(jī)相冊(cè))

    uni-app 經(jīng)驗(yàn)分享,從入門到離職(實(shí)戰(zhàn)篇)——模擬從后臺(tái)獲取圖片路徑數(shù)據(jù)后授權(quán)相冊(cè)以及保存圖片到本地(手機(jī)相冊(cè))

    這篇文章是本專欄 uni-app 的項(xiàng)目實(shí)戰(zhàn)篇,主要內(nèi)容的是模擬前端通過調(diào)用接口,然后獲取到數(shù)據(jù)圖片的路徑數(shù)據(jù),然后授權(quán)相冊(cè),最后把圖片保存到本地(相冊(cè))。 本專欄主要是分享和介紹從零到一學(xué)習(xí)和使用的 uni-app 的筆記和個(gè)人經(jīng)驗(yàn)。通過個(gè)人的學(xué)習(xí)經(jīng)驗(yàn)和工作經(jīng)驗(yàn)來給

    2024年02月08日
    瀏覽(28)
  • uniapp開發(fā)微信小程序使用painter將頁面轉(zhuǎn)換為圖片并保存到本地相冊(cè)

    uniapp開發(fā)微信小程序使用painter將頁面轉(zhuǎn)換為圖片并保存到本地相冊(cè)

    我使用到painter的原因是,在uniapp開發(fā)微信小程序時(shí),需要將一個(gè)頁面的內(nèi)容轉(zhuǎn)換成圖片保存到本地相冊(cè)。 起初在網(wǎng)上找到很多都是在 uniapp 中使用 html2canvas 將 網(wǎng)頁轉(zhuǎn)換成圖片再 jspdf 將圖片轉(zhuǎn)換為pdf ,但是這種方式在小程序環(huán)境不支持,只在 h5 環(huán)境下適用, 當(dāng)然這個(gè)方式是

    2024年02月12日
    瀏覽(29)
  • UE4實(shí)現(xiàn)截屏并保存到相冊(cè)Android/iOS兼容

    UE4實(shí)現(xiàn)截屏并保存到相冊(cè)Android/iOS兼容

    通過Edit-Plugins-NewPlugin創(chuàng)建3個(gè)空的Plugin: MyNative插件,實(shí)現(xiàn)截屏功能,并提供對(duì)外調(diào)用的接口 MyNativeAndroid插件,實(shí)現(xiàn)Android端保存圖片到相冊(cè)功能 MyNativeIos插件,實(shí)現(xiàn)iOS端保存圖片到相冊(cè)功能 1.在MyNative.uplugin注冊(cè)引用到2個(gè)插件MyNativeAndroid和MyNativeIos 2.在MyNative.Build.cs分平臺(tái)引用

    2024年02月15日
    瀏覽(80)
  • uniapp 微信小程序保存圖片到系統(tǒng)相冊(cè)( 獲取用戶是否開啟 授權(quán)保存圖片到相冊(cè)。)

    uniapp 微信小程序保存圖片到系統(tǒng)相冊(cè)( 獲取用戶是否開啟 授權(quán)保存圖片到相冊(cè)。)

    當(dāng)用戶點(diǎn)擊拒絕按鈕后的截圖: ? 用戶點(diǎn)擊不授權(quán)? 則關(guān)閉彈窗 單獨(dú)給用戶點(diǎn)擊授權(quán)后, 跳轉(zhuǎn)到授權(quán)頁面 ?開啟授權(quán)后:

    2024年02月08日
    瀏覽(37)
  • 微信小程序保存圖片到相冊(cè) 微信小程序?qū)崿F(xiàn)將圖片保存到手機(jī)相冊(cè)(方案一)

    目錄 微信小程序?qū)崿F(xiàn)將圖片保存到手機(jī)相冊(cè)(方案一) 微信小程序?qū)崿F(xiàn)將圖片保存到手機(jī)相冊(cè)(方案二) 微信小程序之點(diǎn)擊復(fù)制文本到剪貼板 微信小程序---判斷是IOS還是安卓 微信小程序分享圖片給微信好友 首先我們需要調(diào)用wx.downloadFile方法下載文件資源到本地,然后利用

    2023年04月20日
    瀏覽(21)
  • 微信小程序保存圖片到相冊(cè) 微信小程序?qū)崿F(xiàn)將圖片保存到手機(jī)相冊(cè)(方案一)

    目錄 微信小程序?qū)崿F(xiàn)將圖片保存到手機(jī)相冊(cè)(方案一) 微信小程序?qū)崿F(xiàn)將圖片保存到手機(jī)相冊(cè)(方案二) 微信小程序之點(diǎn)擊復(fù)制文本到剪貼板 微信小程序---判斷是IOS還是安卓 微信小程序分享圖片給微信好友 首先我們需要調(diào)用wx.downloadFile方法下載文件資源到本地,然后利用

    2023年04月20日
    瀏覽(25)
  • [小程序?qū)崿F(xiàn)保存圖片到相冊(cè)]

    實(shí)現(xiàn)邏輯: 首先查看用戶申請(qǐng)過的權(quán)限中是否有”保存圖片到相冊(cè)“,如果沒有這個(gè)權(quán)限,則需要先申請(qǐng)權(quán)限(彈窗授權(quán)),如果用戶同意授權(quán)則保存圖片,如果用戶不同意,則跳轉(zhuǎn)到設(shè)置頁,重新授權(quán),然后再保存圖片。 查看用戶申請(qǐng)的全縣有哪些 通過微信的API 獲取用戶

    2024年02月16日
    瀏覽(19)
  • uniapp-小程序保存圖片到相冊(cè)

    uniapp-小程序保存圖片到相冊(cè)

    一. 將圖片保存到手機(jī)相冊(cè)涉及的 api 有以下幾個(gè) 1. uni.getSetting (獲取用戶的當(dāng)前設(shè)置) 2. uni.authorize (提前向用戶發(fā)起授權(quán)請(qǐng)求。調(diào)用后會(huì)立刻彈窗詢問用戶是否同意授權(quán)小程序使用某項(xiàng)功能或獲取用戶的某些數(shù)據(jù),但不會(huì)實(shí)際調(diào)用對(duì)應(yīng)接口。如果用戶之前已經(jīng)同意授權(quán),則不

    2024年04月22日
    瀏覽(26)
  • Android開發(fā) 拍照+讀取相冊(cè)+保存到本地

    Android開發(fā) 拍照+讀取相冊(cè)+保存到本地

    注冊(cè)除了MainActivity的其他兩個(gè)界面Albums和Camera,添加provider,申請(qǐng)使用相機(jī)的權(quán)限,讀寫權(quán)限 file_path.xml代碼 如果虛擬機(jī)可以運(yùn)行,手機(jī)不能安裝,gradle.properties里面添加 文件結(jié)構(gòu) 總結(jié) https://wwzb.lanzoue.com/imUKH0n1nq4d 密碼:1eda 分享Demo可試試效果 參考來源: ?Android studio調(diào)用手機(jī)

    2024年02月05日
    瀏覽(90)
  • Unity 保存圖片到相冊(cè)以及權(quán)限管理

    Unity 保存圖片到相冊(cè)以及權(quán)限管理

    一、前言 本文旨在介紹,如何將游戲內(nèi)的圖片保存到Android相冊(cè),并實(shí)時(shí)刷新顯示出來(不需要寫Android原生項(xiàng)目),另外解決存儲(chǔ)權(quán)限申請(qǐng)和彈窗隱藏問題 二、保存圖片到相冊(cè) 修改File-BuildSettings-PlaySettings-OtherSettings寫入權(quán)限 Internal 是內(nèi)部存儲(chǔ),無需存儲(chǔ)權(quán)限,可以使用軟件

    2024年02月05日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包