iOS基于JPush点击通知跳转到对应的界面 (1 手机系统版本 2 程序在前台 后台 死掉)

 在做项目时遇到了这个问题,相信跟大家一样,不是不会做,但是就是不是很会做,然后就百度,后来发现没有适合我的。于是综合手机系统版本和程序的生命周期进行叙述。
 前面证书的流程忽略,如果不会百度一大堆。
 1.注册通知:
 //根据系统分:
 if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {
        JPUSHRegisterEntity * entity = [[JPUSHRegisterEntity alloc] init];
        entity.types = UNAuthorizationOptionAlert|UNAuthorizationOptionBadge|UNAuthorizationOptionSound;
        [JPUSHService registerForRemoteNotificationConfig:entity delegate:self];

    }else if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
        [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
                                                          UIUserNotificationTypeSound |
                                                          UIUserNotificationTypeAlert)
                                              categories:nil];

    }else {
        [JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                                          UIRemoteNotificationTypeSound |
                                                          UIRemoteNotificationTypeAlert)
                                              categories:nil];
    }

    [JPUSHService setupWithOption:launchOptions appKey:@
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS 系统中,可以使用`WKWebView`的 `shouldPreviewElement` 方法和 `WKPreviewActionItem` 来实现将手机号保存到手机通讯录的功能。 具体步骤如下: 1. 在 `WKWebView` 的代理方法 `webView(_:shouldPreviewElement:): WKPreviewElementInfo?` 中判断是否是电话号码,并返回一个 `WKPreviewElementInfo` 对象。 ```swift func webView(_ webView: WKWebView, shouldPreviewElement elementInfo: WKPreviewElementInfo) -> WKPreviewElementInfo? { if let phoneNumber = elementInfo.linkURL?.absoluteString, phoneNumber.isPhoneNumber { return elementInfo } else { return nil } } ``` 2. 在 `WKWebView` 的代理方法 `webView(_:previewingViewControllerForElement:defaultActions:) -> UIViewController?` 中创建一个 `UIViewController` 对象,并添加一个保存电话号码到通讯录的操作。 ```swift func webView(_ webView: WKWebView, previewingViewControllerForElement elementInfo: WKPreviewElementInfo, defaultActions previewActions: [WKPreviewActionItem]) -> UIViewController? { let phoneNumber = elementInfo.linkURL!.absoluteString let alertController = UIAlertController(title: "是否保存\(phoneNumber)到通讯录?", message: nil, preferredStyle: .actionSheet) let saveAction = WKPreviewActionItem(title: "保存到通讯录", style: .default) { (action, viewController) in // 保存电话号码到通讯录 let contact = CNMutableContact() contact.phoneNumbers.append(CNLabeledValue(label: CNLabelPhoneNumberMain, value: CNPhoneNumber(stringValue: phoneNumber))) let contactController = CNContactViewController(forUnknownContact: contact) contactController.allowsActions = false contactController.allowsEditing = true viewController.navigationController?.pushViewController(contactController, animated: true) } alertController.addAction(saveAction) let cancelAction = WKPreviewActionItem(title: "取消", style: .cancel) { (action, viewController) in // 取消操作 viewController.dismiss(animated: true, completion: nil) } alertController.addAction(cancelAction) return alertController } ``` 其中,`phoneNumber.isPhoneNumber` 是一个自定义的字符串扩展方法,用于判断是否是电话号码。`CNContactViewController` 是 iOS 系统提供的用于显示和编辑联系人信息的控制器。 最后,在 `Info.plist` 文件中添加以下权限请求: ```xml <key>NSContactsUsageDescription</key> <string>需要访问通讯录来保存电话号码</string> ``` 这样就可以实现在 iOS 系统点击手机号码保存到手机通讯录的功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值