ios - 请求权限flutter IOS
问题描述
我正在开发一个从 firebase 云消息接收通知的应用程序。
从我读到的文档中,对于 IOS,您需要向用户请求权限,问题是您无法在请求中显示横幅。
这是我的代码:
void main() {
WidgetsFlutterBinding.ensureInitialized();
if (Platform.isIOS) {
//IOS check permission
permission();
}
runApp(MyApp());
}
void permission() async {
NotificationSettings settings = await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);
if (settings.authorizationStatus == AuthorizationStatus.authorized ||
settings.authorizationStatus == AuthorizationStatus.provisional) {
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
await FirebaseMessaging.instance
.setForegroundNotificationPresentationOptions(
alert: true, // headsup notification in IOS
badge: true,
sound: true,
);
} else {
//close the app
SystemChannels.platform.invokeMethod('SystemNavigator.pop');
}
}
解决方案
从 developer.apple.com 创建一个 apn 密钥 在云消息部分下的 firebase 控制台中添加此密钥和 apn id。在 xcode 中添加 URL 参数 在 xcode 中添加后台模式功能并启用后台、获取和处理 在 xcode 中添加推送通知功能 在项目的 iOS/runner 中的 info.plist 中添加所需的权限。不要忘记在你的跑步者中包含 googleServicesinfo.plist
https://firebase.flutter.dev/docs/messaging/apple-integration 检查此链接以了解详细的分步过程。
推荐阅读
- r - 为 2 个分类变量之间的 ggalluvial 图形成数据框?
- git - 如何将最新提交与我未提交的文件结合起来
- python - 当我尝试在我的终端上运行代码时,我不断收到“ModuleNotFound”错误,即使我安装了它
- csv - Jmeter - 登录后如何从下拉列表中获取最新选择值的数据?
- django - Django、Vue 和 WebSocket - 让客户端工作
- google-cloud-platform - 从 GCP 错误报告 Webhook 触发云功能
- sql-server - Liquibase 模式限定的更改日志
- mongodb - Cloud Mongodb的CA证书SSL安装
- selenium-webdriver - 如何为引导下拉列表创建正确的定位器 - XPath 或当此元素的每个定位器都混乱时的任何便利
- c# - 将字符串数组分配给二维字符串数组