Обмен данными между приложениями в IOS

У меня есть задача обмениваться данными между приложениями на одном устройстве. Возможно, оба приложения могут использовать общую базу данных на одном устройстве. Как обмениваться данными между двумя приложениями в IOS. Кто-нибудь сделал это любым способом. Пожалуйста, дайте мне знать. Спасибо

1 ответ

Решение

Вы можете включить группу приложений на вкладке "Возможности проекта приложения" в обоих приложениях с одинаковым идентификатором контейнера группы. "group.com.yourCompanyID.sharedDefaults"

введите описание изображения здесь

Затем вы можете получить доступ к той же папке из ваших приложений, используя следующий URL:

let sharedContainerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.yourCompanyID.sharedDefaults")!

Поэтому, если вы хотите поделиться состоянием коммутатора из двух разных приложений, вы должны сделать это следующим образом:

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var sharedSwitch: UISwitch!
    let switchURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.yourCompanyID.sharedDefaults")!
        .appendingPathComponent("switchState.plist")
    override func viewDidLoad() {
        super.viewDidLoad()
        print(switchURL.path)
        NotificationCenter.default.addObserver(self, selector: #selector(updateSwitch), name: .UIApplicationDidBecomeActive, object: nil)
    }
    func updateSwitch(_ notofication: Notification) {
        sharedSwitch.isOn = NSKeyedUnarchiver.unarchiveObject(withFile: switchURL.path) as? Bool == true
    }
    @IBAction func switched(_ sender: UISwitch) {
        let success = NSKeyedArchiver.archiveRootObject(sender.isOn, toFile: switchURL.path)
        print(success)
    }
}
Другие вопросы по тегам