将NameSpace传递给对象并保存到本地存储

问题描述 投票:0回答:1

您好,我有一个 Android 应用程序,可以打开设备证书并从中获取一些信息(APPCID)

  handleCeritifcate(appid) {
OData.defaultHttpClient = sap.AuthProxy.generateODataHttpClient();
this.factory.connectionData = { DeviceType: "Android" };
this.factory.clientCert = new sap.AuthProxy.CertificateFromStore();

console.log("app clientcert:", this.factory.clientCert);


var sUrl = this.factory.baseUrl + "/odata/applications/latest/" + appid + "/Connections";

var request = {
  headers: {},
  certificateSource: this.factory.clientCert,
  requestUri: sUrl,
  data: this.factory.connectionData,
  method: "POST"
};


OData.request(request, (result => {
  // this.onSuccessForRegister(result);
  console.log("certificate success:", result);

}), (error) => {
  console.log("ceritficate error", error);
});

}

我想保存从 this.factory.clientCert 获得的值并保存到本地存储,以便我可以将其传递给另一个应用程序,我正在使用 inappbrowser postmessage 在站点之间传递数据 但是当我尝试保存 clientCert 时,它只保存其中的 JSON

{ SYSTEM : SOURCE } 

没有 AuthProxy.CertificateFromStore

非常感谢您的帮助

javascript angular inappbrowser sap
1个回答
0
投票

您正在尝试将已声明的对象存储到本地存储中。

您可以尝试使用

JSON.stringify()
(MDN) 转换实例,然后保存。

localStorage.setItem(clientCert, JSON.stringify(this.factory.clientCert));

console.log(JSON.parse(localStorage.getItem("clientCert"));
© www.soinside.com 2019 - 2024. All rights reserved.