首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法从共享扩展代码访问iOS中的离子插件密钥链密钥值对。

无法从共享扩展代码访问iOS中的离子插件密钥链密钥值对。
EN

Stack Overflow用户
提问于 2018-08-23 05:46:35
回答 1查看 394关注 0票数 0

我已经创建了一个混合应用程序,其中我们使用ionic上传文件。

对于iOS,我们创建了一个共享扩展来上传文件,现在正在尝试将凭据从ionic应用程序传递到iOS中的共享扩展。

我使用了ionic native和iOS都支持的iOS密钥链机制。

我在swift和key chain实现中编写的共享扩展在ionic应用程序中使用了类似ionic plugin的包装器。

我可以在ionic插件中保存信息,也可以在ionic本身中获取信息。共享扩展的情况与此类似。

虽然我不能从ionic获取到共享扩展的信息。

这就是我在视图控制器中使用的共享扩展。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let keychainWrapper = KeychainWrapper.init(serviceName: "xxxx.xxx.xxx" )
let str = keychainWrapper.accessGroup
        let keyBool = keychainWrapper.accessibilityOfKey("key")
        let value = keychainWrapper.string(forKey: "key", withAccessibility:KeychainItemAccessibility.whenPasscodeSetThisDeviceOnly)
        let serviceName = keychainWrapper.serviceName

在ionic中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 this.keychain.set(key, value,false).then(() => {
      this.keychain.get(key)
        .then(value => console.log('Got value', value))
        .catch(err => console.error('Error getting', err));
    })
    .catch(err => console.error('Error setting', err));

有没有其他方式可以共享信息,比如ionic和iOS swift都支持的NSUserdefaults等?

This教程就是我一直在遵循的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-24 12:20:23

在ionic中,我不得不使用应用程序首选项插件。这给了我访问用户默认设置的权限,尽管为了获取,组必须更改ionic插件代码,以便我可以共享保存在ionic中的用户默认设置,并在应用程序扩展中获取相同的内容。

插件https://ionicframework.com/docs/native/app-preferences/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//ionic code
let dict12 = this.appPref.suite('group.xxxxxxx')
        this.appPref.store('group.pmshare', 'keyNa', 'valueNa')
        console.log('dict: ' + dict12)
        this.appPref.fetch('group.pmshare', 'keyNa').then(str => {
        console.log('str: ' + str)
        })


// shared extension code
var defaults = UserDefaults.init(suiteName: "group.xxxxxxx")
        print(defaults?.string(forKey: "keyNa"))
        defaults?.set("fromExtValue", forKey: "fromExt")

请始终记住在目标->应用组->打开下创建一个组

将使用相同的组在两个应用程序之间共享数据。

这实际上可以用于iOS中的应用程序间通信。当应用程序是使用Ionic开发的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51979045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文