• 【快应用】网络图片保存到相册失败案例


     问题背景:

    调用 media.saveToPhotosAlbum接口保存网络路径的图片。出现错误提示 code=202,该如何处理?

    代码如下:

    报错提示如下:

    09-16 14:12:01.511 E/jsLog   (19071): saveToPhotosAlbum: input err: invalid param.

    09-16 14:12:01.519 I/jsLog   (19071): handling fail, code = 202

    问题分析:

    快应用在中的saveToPhotosAlbum接口目前仅支持本地图片路径保存到相册,暂不支持网络图片路径导致的。

    解决方法:

    想要保存网络路径的图片需要先调用request.download接口将图片先下载下来,拿到本地存储的临时图片路径,再去调接口将图片保存到相册。

    修改代码如下:

    效果如下:

    09-16 14:28:03.468 I/jsLog   (19152): 341

    09-16 14:28:03.843 I/jsLog   (19152): internal://mass/Download/6138797a4e3b3-2.jpg

    09-16 14:28:05.479 I/jsLog   (19152): save success

    09-16 14:29:04.878 I/jsLog   (19152): save success

    Hello.ux页面代码如下:

    1. <style>
    2. .container {
    3. flex-direction: column;
    4. align-items: center;
    5. justify-content: center;
    6. }
    7. .txt {
    8. font-size: 30px;
    9. text-align: center;
    10. width: 50%;
    11. height: 70px;
    12. margin-top: 5px;
    13. border: 1px solid #000000;
    14. }
    15. style>
    16. <script>
    17. import prompt from '@system.prompt';
    18. import request from '@system.request';
    19. import media from '@system.media';
    20. module.exports = {
    21. data: {
    22. componentData: {},
    23. imgurl: "https://ywopen-1252317822.image.myqcloud.com/openwx/recommendimg/20210908/6138797a4e3b3.jpg",
    24. downloadtoken: '',
    25. downloadurl: ''
    26. },
    27. save() {
    28. media.saveToPhotosAlbum({
    29. uri: this.downloadurl,
    30. success: function () {
    31. console.log('save success');
    32. prompt.showToast({
    33. message: 'save success',
    34. })
    35. },
    36. fail: function (data, code) {
    37. prompt.showToast({
    38. message: 'handling fail, code = ' + code,
    39. })
    40. console.log('handling fail, code = ' + code);
    41. }
    42. })
    43. },
    44. download() {
    45. var that = this
    46. request.download({
    47. "url": this.imgurl,
    48. success: function (data) {
    49. console.log(data.token);
    50. that.downloadtoken = data.token
    51. },
    52. fail: function (data, code) {
    53. console.log("handling fail, code = " + code);
    54. },
    55. complete() {
    56. that.ondownloadcomplete()
    57. }
    58. })
    59. },
    60. ondownloadcomplete() {
    61. var that = this
    62. request.onDownloadComplete({
    63. "token": this.downloadtoken,
    64. success: function (data) {
    65. console.log(data.uri);
    66. that.downloadurl = data.uri
    67. },
    68. fail: function (data, code) {
    69. console.log("handling fail, code = " + code);
    70. }
    71. })
    72. }
    73. }
    74. script>

    cke_4665.png

     欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

  • 相关阅读:
    【PostgreSQL】创建表和复制表
    2022最新版-李宏毅机器学习深度学习课程-P49 GPT的野望
    makefile中ifeq ()函数异常问题
    Kubectl 使用详解——k8s陈述式资源管理
    得数据者得天下!作为后端开发必备技能之一的MySQL,这份十多年经验总结的应用实战与性能调优我想你肯定是需要的!
    JVM认识之垃圾收集算法
    【第37篇】EdgeViTs: 在移动设备上使用Vision Transformers 的轻量级 CNN
    【云原生】原来2020.0.X版本开始的OpenFeign底层不再使用Ribbon了
    react ts实现一个 无限加载组件
    Spring之aop
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/126378325