// JS端调用alert时所传的数据可以通过message拿到 // 在原生得到结果后,需要回调JS,是通过completionHandler回调 self.showNoticeText(message...confirm函数时,会触发此方法 // 通过message可以拿到JS端所传的数据 // 在iOS端显示原生alert得到YES/NO后 // 通过completionHandler回调给...JS端 let alertView = UIAlertController.init(title: "提示", message:message, preferredStyle: UIAlertController.Style.alert...-> Void) { // JS端调用prompt函数时,会触发此方法 // 要求输入一段文本 // 在原生输入得到文本内容后,通过completionHandler回调给JS let...alertTextField = UIAlertController.init(title: "请输入", message: "JS调用输入框", preferredStyle: UIAlertController.Style.alert
]; // 创建设置对象 WKPreferences *preference = [[WKPreferences alloc]init];...与JavaScript的交互管理 WKUserContentController * wkUController = [[WKUserContentController alloc] init...= [UIAlertController alertControllerWithTitle:@"js调用到了oc" message:@"不带参数" preferredStyle:UIAlertControllerStyleAlert...*alertController = [UIAlertController alertControllerWithTitle:@"js调用到了oc" message:parameter[@"params...*alertController = [UIAlertController alertControllerWithTitle:@"通过截取URL调用OC" message:@"你想前往我的Github
或许您可以看到带有otherButtonTitles的init方法,但是很遗憾,这个方法是没有办法通过编译的。...还有当文本框内容改变时,调用alertViewShouldEnableOtherButton:方法可以让按钮动态地可用或者不可用。 ...释放对话框控制器 通常情况下,当用户选中一个动作后对话框控制器将会自行释放。不过您仍然可以在需要的时候以编程方式释放它,就像释放其他视图控制器一样。...原先的UIAlertView和UIActionSheet类仍然可以在iOS 8中工作得很好,所以没有必要急于更换代码(要知道本文用到的许多函数尽在iOS 8中支持)。...具体表现是:在项目中,自定义AlertView实例的生命周期是在plugin中管理的,plugin差不多是单例模式,故自定义AlertView实例不会轻易释放,只有下一次调用插件时,实例进行替换时才会将上一实例释放
正确接入SDK后并拥有相关授权域(scope, 什么是授权域? )权限后,开发者移动应用会在终端本地拉起微信应用进行授权登录,微信用户确认后微信将拉起开发者移动应用,并带上授权临时票据(code)。...对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已经安装 微信客户端(使用sdk中的isWXAppInstall函数),对于未安装的用户隐藏微信...对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已经安装 微信客户端(使用sdk中的isWXAppInstall函数),对于未安装的用户隐藏微信...NSString *reAccessToken = [refreshDict objectForKey:WX_ACCESS_TOKEN]; // 如果reAccessToken为空...ERR_AUTH_DENIED = -4(用户拒绝授权) ERR_USER_CANCEL = -2(用户取消) code 用户换取access_token的code,仅在ErrCode为0
上下文环境调用 JS 函数 1.2 JS 调用 OC 函数 1.2.1 OC 拦截 JS 超链接操作请求 1.2.2 向 JS 中注入 OC 类 1.2.3 使用 JSContext 上下文,JS函数...JS 函数 OC 调用 JS 函数,有两种方法: ①使用stringByEvaluatingJavaScriptFromString,拼接 JS 字符串调用。...JS 函数 [self.context[@"ocCallJS_byJSContext"] callWithArguments:@[dict]]; } 1.2 JS 调用 OC 函数 JS 调用...; UIAlertController *controller = [UIAlertController alertControllerWithTitle:@"提示" message:@"JS调用...同时,被 JS 调用的 OC 方法,需要遵守 JSExport 协议。 例如,需求为 JS 调用 OC 的 getUserInfo 方法,获取应用内用户信息。
= [[CGPoint]]() //所有的线 记录每一条线 fileprivate var currentPointArray = [CGPoint]() //当前画线的点 画完置空...else { resultTitle = "提示" resultMessage = "保存成功" } let alert:UIAlertController...= UIAlertController.init(title: resultTitle, message:resultMessage, preferredStyle: .alert)...alert.addAction(UIAlertAction.init(title: "确定", style: .default, handler: nil)) self.present(...nil) } 不过千万别忘了给app设置相册的权限 在info.plist中添加Privacy - Photo Library Usage Description属性即可,value值为提示信息
前言 总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift...tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { //创建cell,不需要判断是否为空...因为只有init()是私有的,才能防止其他对象通过默认构造函数直接创建这个类对象,确保你的单例是真正的独一无二。...UIImagePickerControllerDelegate,UINavigationControllerDelegate { var uploadAlertController : UIAlertController...func initAlertController() { weak var blockSelf = self uploadAlertController = UIAlertController
{ NSLog(@"向右轻扫"); if (_count < _images.count - 2) { UIAlertController...action) { UIImagePickerController *picker = [[UIImagePickerController alloc] init...]; //资源类型为打开相册 picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary...; picker.delegate = self; //选择后的图片可以被编辑 picker.allowsEditing = YES...action) { UIImagePickerController *picker = [[UIImagePickerController alloc] init
:(WKWebView *)webView API_AVAILABLE(macosx(10.11), ios(9.0)); 当 WKWebView 总体内存占用过大,页面即将白屏的时候,系统会调用上面的回调函数...B、检测 webView.title 是否为空 并不是所有H5页面白屏的时候都会调用上面的回调函数,比如,最近遇到在一个高内存消耗的H5页面上 present 系统相机,拍照完毕后返回原来页面的时候出现白屏现象...(拍照过程消耗了大量内存,导致内存紧张,WebContent Process 被系统挂起),但上面的回调函数并没有被调用。...在WKWebView白屏的时候,另一种现象是 webView.titile 会被置空, 因此,可以在 viewWillAppear 的时候检测 webView.title 是否为空来 reload 页面...8.2、goBack API问题 WKWebView 上调用 -[WKWebView goBack], 回退到上一个页面后不会触发window.onload()函数、不会执行JS。
:(WKWebView *)webView API_AVAILABLE(macosx(10.11), ios(9.0)); 当WKWebView总体内存占用过大,页面即将白屏的时候,系统会调用上面的回调函数...1.2、检测webView.title是否为空 并不是所有页面白屏的时候都会调用上面的回调函数,比如,最近遇到在一个高内存消耗的H5页面上present系统相机,拍照完毕后返回原来页面的时候出现白屏现象...(拍照过程消耗了大量内存,导致内存紧张,webContent process被系统挂起),但上面的回调函数并没有被调用。...在WKWebView白屏的时候,另一种现象是webView.titile会被置空, 因此可以在viewWillAppear的时候检测webView.title是否为空来reload页面。...8.2、goBack API问题 WKWebView上调用 -[WKWebView goBack], 回退到上一个页面后不会触发window.onload()函数、不会执行JS。
用户选择头像功能是最常见的调用相机相册场景,调用系统的方法会存在两个问题:1.除了UIImagePickerController的拍照页面,UISearchBar的取消按钮,键盘上的返回、完成等按钮,以及其他系统界面中带有英文的...在info.plist中添加Localized resources can be mixed value值为YES 如下图: ?...*alertC = [UIAlertController alertControllerWithTitle:@"请选择图片来源" message:nil preferredStyle:UIAlertControllerStyleActionSheet...UIImagePickerControllerSourceTypeCamera]) { self.pickerViewController = [[UIImagePickerController alloc] init...UIImagePickerControllerSourceTypeSavedPhotosAlbum]) { self.pickerViewController = [[UIImagePickerController alloc]init
setNeedsStatusBarAppearanceUpdate]方法即可刷新 注意: [self setNeedsStatusBarAppearanceUpdate]在push或者 present的controller里面调用才起作用...[CLLocationManager locationServicesEnabled]) { locationManager = [[CLLocationManager alloc] init...if([CLLocationManager locationServicesEnabled]) { locationManager = [[CLLocationManager alloc] init...//添加键值如下 //对应的key为 NSLocationAlwaysUsageDescription //对应类型 String //对应值为 定位提示的信息 其中,NSLocationWhenInUseUsageDescription...示例代码如下: UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert" message:@"
生命周期顺序 init、init(nibName...)...不要调用super.loadView()。 不要手动调用该方法。...需要设置当前的 UIViewController 为被代理 UIViewController 中的代理属性。 闭包 可以理解为代理模式中协议的闭包替代,比代理模式更简单。...需要传值的 UIViewController 声明一个闭包属性,闭包的参数个数与类型取决于需要传值的个数和类型,闭包的返回值一般为 Void。 在需要传值的地方调用闭包完成传值。...需要先监听,后发送。 iOS 9 之后 NSNotificationCenter 无需手动移除观察者。 常见ViewController UIAlertController 警告(对话框)控制器。
API支持 首先这个功能只在iOS10.3以后才支持,所以在使用之前当然需要进行判断,我们当然也能够自己获取iOS的系统版本来决定,但是苹果给我们提供了直接的判断方法: // 如果为NO,表示当前进程不支持替换图标...alternateIconName 为 nil代表使用主图标。...完成后的操作将会在任意的后台队列中异步执行; 如果需要更改UI,请确保在主队列中执行。...的 title 和 message 是否都为 nil,是的话就直接返回,也就不会弹出了;不是的话就正常弹出,这个我们通过调用系统的实现就可以了。...注意我们交换方法时交换的仅仅是方法的实现IMP,所以交换之后,我们如果想要再调用原本系统的实现,需要调用的反而是我们自己的方法名SEL: #import - (void
override init() { super.init() NotificationCenter.default.addObserver(self, selector...(sheng, shi, qu) } } /// 用户权限提醒框 func showAuthAlert() { let alertVC = UIAlertController.init...(“空”, “空”, “空”) } } } func locationManager(_ manager: CLLocationManager,...“” // // 四大直辖市的城市信息无法通过locality获得,只能通过获取省份的方法来获得(如果city为空,则可知为直辖市) // var...“” // 四大直辖市的城市信息无法通过locality获得,只能通过获取省份的方法来获得(如果city为空,则可知为直辖市) weakSelf.shi
连续三次指纹识别错误后,会自动弹出密码框,通过Touch ID的密码进行身份验证,如果此时取消密码验证,再2次指纹识别失败后,也就是 3 + 2 = 5次指纹识别失败后,Touch ID功能被锁定,就只能通过密码来进行身份验证和解锁...createAlterView:@"不支持指纹识别"]; return; }else{ LAContext *ctx = [[LAContext alloc] init...示例中是环境变暗后就自动提示是否打开闪光灯,打开之后,环境变亮后会自动提示是否关闭闪光灯。...]; // 设置为高质量采集率 [_session setSessionPreset:AVCaptureSessionPresetHigh]; // 添加会话输入和输出...示例中是默认用扬声器播放音乐,当有物体(比如耳朵)靠近听筒附近时就切换听筒播放音乐,物体离开后就继续用扬声器播放音乐。
runJavaScriptAlert 方法注意点 1.在JS端调用alert函数时,会触发此代理方法。...3.在原生得到结果后,需要回调给JS,通过completionHandler 回调给JS 4.completionHandler 回调的参数和返回值都是空 /** 下面这三个方法根据前面的字面意思就能区分记住...*/ // runJavaScriptAlert // 在JS端调用alert函数时,会触发此代理方法。...// 在原生得到结果后,需要回调给JS,通过completionHandler 回调给JS // completionHandler 回调的参数和返回值都是空 -(void)webView:(WKWebView...confirm函数时,会触发此方法 2.通过message可以拿到JS端所传给我们数据 3.在iOS端显示原生alert得到YES/NO后,通过completionHandler回调给JS端 4.注意这个
从相册选择 或者 拍照, 这部分可以用UIImagePickerController来实现 代码如下: - (void)actionPhoto { UIAlertController...= \ [UIAlertController alertControllerWithTitle:@"" message...AFHTTPSessionManager AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; //设置响应文件类型为JSON...model.isUploaded = NO; }]; } 这里有事先创建两个可变数组uploadArray, uploadedArray, 一个存放准要上传的内容, 一个存放上传完的内容 在准备上传后做什么操作...NSLog(@"获取编辑后的好片"); UIImage *tempImage = info[UIImagePickerControllerEditedImage];
Https协议,Https比 Http更为安全性,对 Http协议访问做限制,所以需要在 Info.plust 文件添加 URL Schemes 白名单 ** ** 添加成功后,会在Info.plist...@brief 发送一个sendReq后,收到微信的回应 * * 收到一个来自微信的处理结果。调用一次sendReq后会收到onResp。...*alertController = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"%d",resp.errCode...时传递的数据 return [WXApi handleOpenURL:url delegate:self]; } **在点击响应事件的类导入微信支付的头文件 "WXApi.h",最后在你点击事件的方法中调用下面这个方法...//调起微信支付 PayReq* req = [[PayReq alloc] init
领取专属 10元无门槛券
手把手带您无忧上云