android - 如何在 Flutter 中导航到 iOS 原生添加联系人页面?
问题描述
我一直在寻找如何完成这项工作:我有一个带有“添加联系人”按钮的联系人列表。我的目标是在单击该按钮时打开本机添加联系人页面(主要用于 iOS)。
我知道如何从颤振中调用该方法,但我不知道如何使用 swift 进行调用添加联系人屏幕。
关于如何做到这一点的任何建议?
谢谢
解决方案
好的,所以我想通了。如果有人需要,代码如下:
import UIKit
import Flutter
import Contacts
import ContactsUI
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
setUpMethodChannels(controller: controller)
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
private func setUpMethodChannels(controller: FlutterViewController) {
let contactChannel = FlutterMethodChannel(name: "com.flutter.contact_list/addContact",
binaryMessenger: controller.binaryMessenger)
contactChannel.setMethodCallHandler({
(call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in
guard call.method == "AddContact" else {
result(FlutterMethodNotImplemented)
return
}
let con = CNContact()
let mainVC = CNContactViewController(forNewContact: con)
mainVC.delegate = controller
let navigationController = UINavigationController(rootViewController: mainVC)
self.window?.rootViewController?.present(navigationController, animated: true, completion: nil)
})
}
}
extension FlutterViewController : CNContactViewControllerDelegate, UINavigationControllerDelegate {
public func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) {
viewController.dismiss(animated: true, completion: nil)
}
}
推荐阅读
- javascript - 如何以角度从http请求返回完全初始化的对象
- aws-lambda - 无法在 Terraform 中使用 AWS SecretManager 添加 Lambda 函数
- java - 是否可以设置 Jackson 以将未命名的包装器对象排除到 API 返回的 JSON 数组中?
- c# - 从 Mat 的特定值创建蒙版(在 EMGU 中)
- android - 为什么 child.layout() 的第三个和第四个参数都带有前缀?
- arrays - 在 react-quiz-component 依赖中控制 questionPic 的大小?
- c# - C# 将 if 检查添加到代码块(我没有经验,需要帮助)
- android - 多层建筑中的空间定位,无需在建筑物中安装传感器
- android - 用于 android 的 ML-Kit 人脸检测是否支持 GPU 加速?
- docker - 如何在 WSL + Docker + VS Code 设置中防止用户冲突