无法从共享扩展代码访问 iOS 中的离子插件钥匙串键值对。

Not able to access ionic plugin keychain key value pair in iOS from share extension code.

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

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

我使用了 iOS 钥匙串机制,因为 ionic native 和 iOS 都支持它。

我在 swift 中编写的共享扩展和此处的钥匙链实现是在 ionic 应用程序中使用像 ionic 插件这样的包装器。

我能够在 ionic 插件中保存信息并在 ionic 本身中获取信息。 共享扩展的情况类似。

尽管我无法从 ionic 获取共享到共享扩展的信息。

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

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

在离子中:

 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));

是否有任何其他方式共享信息,如 NSUserdefaults 等,受 ionic 和 iOS swift 支持?

This教程是我一直在关注的

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

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

//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")

永远记得在target->app groups->ON下创建一个组

同一个组将用于在两个应用程序之间共享数据。

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