【问题标题】:Base64 Encode/Decode in Nativescript With Angular 2使用 Angular 2 在 Nativescript 中进行 Base64 编码/解码
【发布时间】:2017-05-08 08:05:06
【问题描述】:

我到处寻找答案,但似乎找不到任何东西。使用atob()btoa() 不起作用。显然,即使智能感知说它们是,你也不能使用它们。 npm 的插件也不想工作。

我要做的就是解码一个 base64 字符串。我错过了什么吗?

【问题讨论】:

  • 反对票可能是由于问题的简洁性,除非人们发表评论,否则很难说。但是,请不要在帖子中加入投票/元评论 - 如果人们不打算发表评论,这无助于说服他们发表评论。
  • 您对两个答案的回答也相当简短,以至于对试图提供帮助的人毫无帮助。 “不起作用”不是有用的故障报告。正如 Eddy 所说,在您的问题中添加一个失败案例的示例。
  • 您好,请不要在您的问题中添加投票建议,也不要在删除后重新添加。我现在已经回滚并投了反对票。如果您希望坚持进行此编辑,请联系我,以便我们安排一位版主。
  • 我投票结束这个问题,因为它收到了很多不好的反馈,它不再需要并且不会帮助其他任何人。

标签: angular nativescript


【解决方案1】:

本机方法

安卓

const text = new java.lang.String("Yolo 10000");
const data = text.getBytes("UTF-8");
const base64 = android.util.Base64.encodeToString(data, android.util.Base64);

IOS

const text = NSString.stringWithString("Yolo 10000");
const data = text.dataUsingEncoding(NSUTF8StringEncoding);
const base64 = data.base64EncodedStringWithOptions(0);

感谢@trinix 在此页面上https://discourse.nativescript.org/t/how-to-base64-encode-a-string-in-nativescript/345


更新

这就是我所拥有的,它对我有用

const text = new java.lang.String("Yolo 10000");
const data = text.getBytes("UTF-8");
const base64Encoded = android.util.Base64.encodeToString(data, android.util.Base64.NO_WRAP);
console.log(base64Encoded);

const base64Decoded = new java.lang.String(android.util.Base64.decode(base64Encoded, android.util.Base64.NO_WRAP), "UTF-8");
console.log(base64Decoded);

输出(Android 原生脚本)

JS: Angular is running in the development mode. Call enableProdMode() to enable the production mode. 
JS: WW9sbyAxMDAwMA== 
JS: Yolo 10000

【讨论】:

  • 第一,那是编码,但我正在尝试解码,第二,那个方法不起作用,我试过了
  • export function decode(args) { var text = args; var data = android.util.Base64.decode(text, android.util.Base64.DEFAULT); var decoded = new java.lang.String( data, java.nio.charset.StandardCharsets.UTF_8 ); return decoded; } 这对我解码 base64string 有用
【解决方案2】:

自己找到了答案,在组件上方使用declare var android;

let folder = fs.knownFolders.temp();
let start = this.eDoc.cImagePath.lastIndexOf("\\");
let end = this.eDoc.cImagePath.length;
let fileName = this.eDoc.cImagePath.substring(start + 1, end);
let path = fs.path.join(folder.path, fileName)
this.fileNameFull = fs.File.fromPath(path);
let data = android.util.Base64.decode(this.eDocInfo.data, android.util.Base64.DEFAULT);
this.fileNameFull.writeSync(data);

解码 base64 并使其可读以显示为 pdf。仅限安卓

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多