ipad屏幕iphone添加桌面小部件件怎么删除

正在阅读:就是这么神奇!小配件就能让Macbook Air变成触屏就是这么神奇!小配件就能让Macbook Air变成触屏
  【PConline 资讯】在苹果的产品线当中Macbook与iPad有着根本的区别,就是Macbook无法使用触摸屏,但近日,在SXSW科技大会上,有科技厂商推出黑科技,仅仅一个小插件,当安装在Macbook Air屏幕下方,就能实现触摸屏功能,很神奇吧?下面我们就来看看这个黑科技。  该公司在2017年CES上,曾经给我们带来了类似的产品,而这次带来全新型号的AirBar产品,而且已经几乎准备量产,与CES 2017相比,这次发布的版本最大的不同就是可以支持多指触控。  现在,我们可以在MacBook Air的屏幕上开合双指来缩放地图,你还可以通过双指旋转一些元素,同时,你可以通过手指轻扫屏幕实现网页和文档的滚动。  如果在macOS的启动栏(Launchpad)里按住某个图标,你可以重新调整顺序或者为某个应用文件夹添加图标,就像在iPhone上一样。  看了这个酷炫的黑科技,大家是不是正在流口水了呢?小编早已饥渴难耐了,只可惜该产品目前暂时还未上市销售,预计售价为99美刀,正式发售时间在4月中旬,将上架亚马逊、百思买和沃尔玛。
笔记本论坛帖子排行
最新资讯离线随时看
聊天吐槽赢奖品ipad多手势操作技巧 减轻home键负担【ipadmini2吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:346,356贴子:
ipad多手势操作技巧 减轻home键负担收藏
老鸟请绕道,菜鸟可以浏览  看到有些孩子抱怨Home键反应不灵敏啦,有延迟啦之类的,下面偶来分享下怎样减轻Home键的负担。  用多手指操作代替Home键:  首先,要确定多任务手势已经打开!  打开方法:设置-&通用-&多任务手势  接下来,详细解释多任务手势操作方法。  1. 五个手指的操作(有兄弟戏称是抓咪咪手势,我笑而不语)  在打开任何软件的情况下,若想返回桌面,有2种操作方式,第一种就是按home键(地球人都知道),如果频繁使用home键返回桌面,那么就大大增加了home键的负担。所以我推荐第二种方法,用5个手指同时按住屏幕,然后5个手指同时向屏幕中心滑动,这样就可以回到桌面了,无论你在开任何的APP,这个手势都适用。当然,如果你已经在桌面,那就没用了。  PS:有朋友补充说回到桌面用4个手指就够了。本人亲测确实可以!感谢补充。不过。。。做这个操作的时候悬着一根手指也挺难受的吧(本人幻想了一下,估计是有些人指甲太长,尤其是小拇指,用5个手指做这个操作就不方便了,欢迎指正!)?!看个人喜好问题啦都是~~~~~还是感谢补充这个信息的朋友!  2.四个手指的操作  第一种:用四个手指同时按住屏幕任何部位,横向一字排开,然后四个手指同时向上滑动,这时就能看到屏幕底部有一栏,这一栏里面就是系统后台运行着的APP,若想关掉后台的APP,只需要按住APP的图标1秒不动,待图标开始晃动,出现删除按钮,点击删除按钮就能停止后台运行的APP了。 这个手势在任何情况包括在桌面的时候都适用。 注意一点,当前运行的APP是不能在当前APP已经激活的时候停止的,例如我在开QQ,屏幕上运行着QQ,如果此时打开任务管理器,是看不到QQ的,因为任务管理器显示的是后台运行的程序,而此时QQ是正在运行的,所以看不到。若想关掉QQ,需要退到桌面,然后用四指打开任务管理器,就能看到QQ图标,然后将它停止了,此时QQ被视为后台程序。  第二种:用四个手指同时按住屏幕任何位置,竖向一字排开,然后四个手指同时向左或者向右滑动。这个手势是用于切换不同APP时所使用的。举个例子,若我现在玩QQ和新浪微博,2个程序我都开了。此时我正在QQ界面上,如果我想看看我的新浪微博,我只需要用四个手指竖向一字排开按住屏幕,然后向左滑动,我就能将界面切换到新浪微博界面了。同理,如果我现在又想切换回QQ,只需用同一手势向右滑动,就能切换成QQ了。注意,这个手势只能在运行APP的时候使用,不能在桌面使用。
国美,笔记本电脑,特价优惠享不停,高清屏,轻薄如纸,视觉盛宴.国美疯抢季,笔记本电脑,省钱省到家,打造行业标杆价,购物轻松更放心!
顶顶顶顶!
好吧,我路过【为什么会有十五个字,不可思议啊
为什么我的打不开手势功能,
开始晃动的不是删除应用的吗
关掉后台直接向上滑就是啊,当前也能关掉啊
以前确实不知道...
这个在mini2到手的1个小时里就会了,补充一个,在任何情况,从屏幕底部向上滑,可以召唤出小部件,如音量,亮度,音乐播放等等
这些都知道,还有别的什么手势么?
「天猫手机馆」-正品手机品牌旗舰店直销,新品现货,品类齐全,售后无忧,正品低价服务优!网购手机,来「天猫手机馆」让人放心的手机商城.&&惠&&聚各款热卖机型!分期付款无压力!
楼主你说的晃动然后清除后台软件的是ios6的吧?我同学说她的一代就这么清理,我的是后台程序一字排开,一根指头按住其中一个没反应,直接向上滑就清理了
对于不了解ipad的我来说挺有用的!谢谢分享~
可惜锁屏没有手势
太棒了,兔子小白谢谢你
几个手指同时向上划也能关闭后台运行的APP
设置上有,不过还是楼主解释的清楚
作为一个不愿意动脑筋,不喜欢看说明滴人来说!楼主真是快速入门教程啊
学习了,多操练
为了抓奶方便我已经剪了右手指甲
致远星还有这么多幸存者
支持一下,好用
受教了,继续!
禁止挖坟,否则后果自负。
老师辛苦了。谢谢你!!!!!!!!
登录百度帐号当前位置:
iPhone可显示iPad的操作列表 一个小插件全搞定
编辑:佚名
来源:网络
  Popoveractions这款新上架的Cydia,受到了不少果粉的欢迎。开发者说,这款插件的灵感来于iPad的操作列表,使用这款插件,会让你的iPhone和iPad也拥有类似于iPad的操作列表。
  iPhone/iPod touch用户安装这款插件之后,操作列表菜单就不会显示在屏幕底部,而是像 iPad的弹出提示那样,显示在屏幕正中央。上图就是安装这款插件前后的效果区别,左边的是默认的方式,而右边的就是Popoveractions能带给你的效果。
  这款插件给用户的整体美学感觉还是不错,而且它不会影响到用户操作列表的功能。这款插件兼容多款,包括Safari、照片、视频、App Store等,但是在Cydia或iFile之中它就要失效了。
  Popoveractions是一款开源插件,通过点击这里可以查看它的源代码。用户无需进行任何设置,如果你不想使用这款插件,卸载即可。想要尝试的用户可以在Cydia的BigBoss源中免费下载。
  更多苹果、资讯,请关注:
你可能还对一下内容感兴趣
【上一篇】
【下一篇】
推荐阅读:
看完这篇文章有何感觉?
苹果应用推荐
PP助手准备为您下载应用
未越狱版:鳄鱼小顽皮爱洗澡
如果在10秒后下载任务还没有开始,请下载并安装:
下载步骤如下:?App Store 上的“Launcher - 带通知中心小部件的启动器”
只能在 iOS 设备上的 App Store 获取此 App。
- 修复漏洞与改进。如果您喜欢启动器,别忘了到 App Store 为我们填写评论哦。 您的评价将对我们大有助益。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了到 App Store 为我们填写评论哦。 您的评价将对我们大有助益。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了到 App Store 为我们填写评论哦。 您的评价将对我们大有助益。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了到 App Store 为我们填写评论哦。 您的评价将对我们大有助益。 谢谢!
3.0.2:- 修复漏洞与改进。3.0:- 文件夹。 将启动器按文件夹分组,以便节省空间,并更整齐排列- Apple Watch 启动器:在手腕上发起通话、信息、地图路线和音乐。- 启动器触发程序:在设置的时间或地点获取通知以启动应用程序。- 应用程序列表中的快速添加按钮。- 新的魔法启动器:计时器、设置亮度、下一日历活动,日出和日落(位于天气选项下方)。- 新的微型启动器大小选项,适用于 iPad、iPhone 6、iPhone 7、iPhone 6+ 及 iPhone 7+。- 多联系人启动器现支持第三方电子邮件应用程序。- 可自动更新来自播放列表的音乐启动器选项。如果您喜欢启动器,别忘了到 App Store 为我们填写评论哦。 您的评价将对我们大有助益。 谢谢!
3.0.1:- 修复漏洞与改进。3.0:- 文件夹。 将启动器按文件夹分组,以便节省空间,并更整齐排列- Apple Watch 启动器:在手腕上发起通话、信息、地图路线和音乐。- 启动器触发程序:在设置的时间或地点获取通知以启动应用程序。- 应用程序列表中的快速添加按钮。- 新的魔法启动器:计时器、设置亮度、下一日历活动,日出和日落(位于天气选项下方)。- 新的微型启动器大小选项,适用于 iPad、iPhone 6、iPhone 7、iPhone 6+ 及 iPhone 7+。- 多联系人启动器现支持第三方电子邮件应用程序。- 可自动更新来自播放列表的音乐启动器选项。如果您喜欢启动器,别忘了到 App Store 为我们填写评论哦。 您的评价将对我们大有助益。 谢谢!
- 文件夹。 将启动器按文件夹分组,以便节省空间,并更整齐排列- Apple Watch 启动器:在手腕上发起通话、信息、地图路线和音乐。- 启动器触发程序:在设置的时间或地点获取通知以启动应用程序。- 应用程序列表中的快速添加按钮。- 新的魔法启动器:计时器、设置亮度、下一日历活动,日出和日落(位于天气选项下方)。- 新的微型启动器大小选项,适用于 iPad、iPhone 6、iPhone 7、iPhone 6+ 及 iPhone 7+。- 多联系人启动器现支持第三方电子邮件应用程序。- 可自动更新来自播放列表的音乐启动器选项。如果您喜欢启动器,别忘了到 App Store 为我们填写评论哦。 您的评价将对我们大有助益。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
全局设置]。 - 修复漏洞与改进。 如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!" class="version-history__item__release-notes we-truncate we-truncate--multi-line ember-view">
- 小部件深色模式 [选项 -& 全局设置]。- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 支持 iOS 10。- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 支持 iOS 10。- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 多个小部件!
- 有了新的应用内购买服务,您就可以多创建 5 个小部件,为启动器扩大空间,实现更好的管理。
- 设置以根据时间、日期和/或位置来显示或隐藏小部件。 为家庭、工作、周末或健身房创建专属小部件。
- 无法在 iPhone 4S 上使用。- 在 iCloud 上备份或存储启动器。- 更多图标自定义功能。 选择圆形图标或创建您的自定义图标。- 修复漏洞与改进。如果您喜欢启动器,别忘了在 App Store 中为我们填写评论哦。 这款应用真的很有用。 谢谢!
- 修复漏洞并进行改进。
- 全新魔法启动器:CPU、内存、年度周数、倒计时。- 全新内置启动器:空白启动器、清空剪贴板。- 修复漏洞并进行改进。
- 修复漏洞并进行改进
版本 3.1.4
- 修复漏洞与改进。如果您喜欢启动器,别忘了到 App Store 为我们填写评论哦。 您的评价将对我们大有助益。 谢谢!
4.3(满分 5 分)
330 个评分
330 个评分
刚下载的时候8个免费位置,几乎所有东西都能设置,本来想换这个设置的,删了就不能加回去了,广告占一个位置,以前能用的也不让恢复……真的是越来越不喜欢了。收费可以理解,但是还是觉得不甘心
刚下载的时候8个免费位置,几乎所有东西都能设置,本来想换这个设置的,删了就不能加回去了,广告占一个位置,以前能用的也不让恢复……真的是越来越不喜欢了。收费可以理解,但是还是觉得不甘心
新版本添加不了设置里的小部件 希望官方改进一下
新版本添加不了设置里的小部件 希望官方改进一下
已经不记得多久点不开快捷方式了,软件也一直不更新,当初收费购买的,差评
已经不记得多久点不开快捷方式了,软件也一直不更新,当初收费购买的,差评
启用“家人共享”后,此 App 最多可供 6 名家庭成员使用。app提供分享功能
分享的触发:人们去分享app中看到的内容,基本上认同、或者想得到更多人的认同的一种心理产生的行为。
那我们经常看到从自己的app分享到微信朋友圈的功能,由于微信已经禁了schema跳转功能。自己的应用通过第三方分享出去一篇文章到微信朋友圈
怎样让用户在点击了链接跳转回自己的APP相应的页面呢?
产品策略改变:
原先的考虑是点击链接后打开网页,下面有打开“某某”app功能。当打开后直接提示了
“即将离开微信,打开App Store”。这个由于在微信中无法直接检测用户是否安装了改app,所以直接跳转到app store不太妥当。
现在做如下改变,参考处理比较好的微博
第一步:打开文章链接地址,打开app按钮,先跳转到用户引导页面。
第二步:在用户引导页面提示用户是否安装app,如果安装,建议用户点击右上角选择“在Safari中打开”。这样用户如果采用Safari打开
app,如果app已经安装,则直接跳转到相应的页面,如果没有安装,则跳转到AppStore上下载app。
第三步:在用户引导页面上,如果用户看到“没有安装 某某app”,点击了“下载app“,直接离开微信,打开appstore下载app
特殊的一点:
无法在微信朋友圈分享的网页中检测用户是否安装了某一个app
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。如果有错误或不妥之处请发送邮件到。谢谢。
本文地址:
博客地址:
iOS widget开发 构建widget
从iOS 8开始,应用程序可以将关联的小部件部署到iOS通知中心的今日屏幕。
那如何构建在用户的今日屏幕中嵌入消息中心的自定义小部件呢?
用例可能包括在他们自己的用户界面中不需要或不能包含消息中心的应用程序,以及允许用户检查新消息而无需启动App的需求。
要求和限制
仅在iOS 8及更高版本上支持小部件。
另外请注意,作为一项新的iOS功能,小部件可能仍然有点bug。 建议尽早尝试这些功能,以便在决定是否将它们集成到我们app项目之前熟悉它们。
Widget运行
Widget不是同一应用程序的一部分,而是与主App一起构成App groups的独立进程。为了让这些进程相互通信,宿主app和Widget必须通过此容器共享数据。
做这件事最直接的方法之一是通过在应用程序组中的进程之间共享的NSUserDefaults的特殊实例。当宿主app决定是时候与窗口Widget共享新信息的时候,它可以将数据存储在用户默认的共享密钥下,并通过调用NCWidgetController类的setHasContent方法来通知Widget。当稍后显示小部件时,OS将通过调用NCWidgetProvidingProtocol协议中的widgetPerformUpdateWithCompletionHandler方法来通知Widget它应该更新其显示。
现在,我们将在主App和Widget之间共享NSDictionary对象中序列化的消息数据数组。我们还将展示如何更新Widget的内容以响应背景推送通知,以便Widget即使在未打开宿主app程序时也能保持最新。
App Groups配置
要创建一个新的Today Widget,请打开XCode并导航到File>>New>>Target,然后选择iOS下的Today Extension模板>>Application Extension:
如下图所示
Widget选择一个合适的名称,然后在嵌入应用程序部分下,选择您的主应用程序目标(如果尚未被选择),然后继续。
这应该为项目的源代码树添加一个新的扩展,以及一个“Hello World”Storyboard文件和一个TodayViewController类。
在iOS Developer Portal中注册一个App Groups。 选择该组的唯一标识符,例如“group.com.mycompany.myappname”。 这里显示一个例子:
由于Widget是独立的应用程序,因此它们也有自己的应用程序和包标识符。 为了正确设置您的Widget,您需要在Developer门户中设置相应的应用程序标识符。 这些通常采用主App捆绑包的形式,并附加了小部件的产品名称,例如“com.mycompany.myappname.WidgetName”:
主app和Widgt的应用程序标识符也必须在应用程序服务下启用App Groups。 单击编辑按钮并为每个标识符添加App Groups,并确保它们在继续之前点亮为绿色。
最后,确保主app和Widgt都启用了App Groups,并且您在XCode的capabilities中选择了您创建的App Groups。 这应该会导致创建或更新主app和widget的权利文件,其中包含新应用程序组的条目:
工程项目Widget
在创建之后我们可以看到项目功能,有TodayViewController、MainInterface.storyboard、info.plist
我们可以看到info.plist 中,storyboard作为界面展示组件。
如果我们需要自己使用代码写widget展示的界面,则需要将info.plist文件中的NSExtensionMainStoryboard 修改为 NSExtensionPrincipalClass,当然value也要相应改成自己创建的SDWidgetViewController
Widget不能使用宿主app的baseView,model等
Widget不是同一应用程序的一部分,Widget不能使用宿主app的baseView,model等内容。
Widget与宿主app数据传递
Widget与宿主app数据传递有两种方式,即通过NSUserDefaults和NSFileManager
NSUserDefaults方式
通过NSUserDefaults将数据保存起来,当然这里使用使用的是initWithSuiteName,参数是app groups
a. 保存数据
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"12asad2wqwe", @"authToken",
@"1", @"hasLogin",
@"11221", @"uid"
//通过app group保存数据 NSUserDefaults
NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.jiejiedian.apps"];
[shared setObject:dict forKey:@"user"];
[shared synchronize];
b. 获取数据
//通过app group获取数据 NSUserDefaults
NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.jiejiedian.apps"];
NSDictionary *value = [shared objectForKey:@"user"];
NSFileManager方式
通过NSFileManager方式将数据保存起来,当然这里使用使用的是containerURLForSecurityApplicationGroupIdentifier,参数是app groups
a. 保存数据
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"12asad2wqwe", @"authToken",
@"1", @"hasLogin",
@"11221", @"uid"
//通过NSFileManager方式保存数据 NSFileManager方式
NSError *err =
NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.jiejiedian.apps"];
containerURL = [containerURL URLByAppendingPathComponent:@"Library/Caches/groupapps"];
BOOL result = [dict writeToURL:containerURL atomically:YES];
if (!result) {
NSLog(@"%@",err);
NSLog(@"save value:%@ success.",dict);
b. 获取数据
//通过NSFileManager方式获取数据 NSFileManager方式
NSError *err =
NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.jiejiedian.apps"];
containerURL = [containerURL URLByAppendingPathComponent:@"Library/Caches/groupapps"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfURL:containerURL];
Widget与 cocoaspod
Widget当然可以使用pod来使用第三方库,我们也可以将原先app的代码进行拆分,制作成pod 私有库。当然Widget很多不能使用的,比如不能使用[UIApplication sharedApplication],所以私有库中不要包含不能使用的类。
target 'Widget' do
# 私有仓库
pod 'SDWebImage'
# 第三方库
pod 'AFNetworking'
pod 'Reachability'
Group Apps通信第三方库MMWormhole
MMWormhole:https://github.com/mutualmobile/MMWormhole
MMWormhole简单使用
[self.wormhole passMessageObject:@{@"buttonNumber" : @(1)} identifier:@"button"];
[self.wormhole listenForMessageWithIdentifier:@"button"
listener:^(id messageObject) {
self.numberLabel.text = [messageObject[@"buttonNumber"] stringValue];
Widget注意事项
Widget 尽量处理一些展示,不要让这里面出现复杂交互
Widget 本身不适合承载复杂任务
Widget 发布时保证Widget的版本号与主app一致
本文App Groups配置部分内容翻译自:
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。如果有错误或不妥之处请发送邮件到。谢谢。
本文地址:
博客地址:
Apple watch 使用WKInterfaceImage显示图片
查看您查看WKInterfaceImage的类文档,您会注意到显示图像有三种不同的方法。
setImage:
这个方法从WatchKit extension文件中加载图片
//设置图片(UIimage)
//该方法只能加载WatchKit extension文件中的图片
- (void)setImage:(nullable UIImage *)
setImageData:
//设置图片(NSData)
从你的将包含WatchKit扩展的一个或多个图像的NSData对象加载图片,也可以使用直接从文件加载的数据或从Internet下载的数据设置图像
//设置图片(NSData)
- (void)setImageData:(nullable NSData *)imageD
但是如何从网络上下载图片进行显示呢?请移步下面的地址
setImageNamed:
此方法显示已存储在WatchKit应用程序包中的图像,或缓存在设备上的图像。
该方法只能加载WatchApp文件中的图片
//设置图片(图片名字)
//该方法只能加载WatchApp文件中的图片
- (void)setImageNamed:(nullable NSString *)imageN
WKInterfaceDevice 中的方法addCachedImage、addCachedImageData已经在watchOS2.0上不能使用了,会报错,这个请注意
Storyboards
Interface Builder将从项目中的任何位置指定图像,但只有在您的Watch应用程序包中包含它时才会显示。
//显示Extension中的图片
[image setImage:[UIImage imageNamed:@&image_100&]];
//加载WatchApp文件中的图片
[image setImageNamed:@&image_100&];
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。谢谢。
本文地址:
博客地址:
Apple watch开发 WKInterfaceImage显示网络图片
最近在为原项目增加apple watch功能,遇到一个问题,一只是WKInterfaceImage无法显示网络图片,无法更加imageurl显示图片。
第一步:首先想到WKInterfaceDevice,但是查找文档又一下的描述
For frequently used images, you can cache the images in advance using the methods of the WKInterfaceDevice class. Image caching is not supported in watchOS 2.
您可以使用WKInterfaceDevice类的方法预先缓存图像。 在watchOS 2中不支持图像缓存。
可惜watchOS 2中不支持图像缓存,使用WKInterfaceDevice,xcode会如下的错误
xcode WKInterfaceDevice 'addCache ImageWithData:name:' is unavailable: not available on watchOS
第二部:异步加载图片,这时使用dispatch_async加载图片,之后显示,但是经过测试也是不能显示图片
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
dispatch_async(dispatch_get_main_queue(), ^{
[self.image setImageData:imageData];
最后一步:采用NSURLSESSION
采用NSURLSESSION,通过NSURLSession下载图片,下载成功后显示,可以正常显示
#import &WKInterfaceImage+WKImageUrl.h&
@implementation WKInterfaceImage (WKImageUrl)
- (void)setImageUrl:(NSString *)imageUrl {
[[[NSURLSession sharedSession] dataTaskWithURL:[NSURL URLWithString:imageUrl] completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
if (data != nil && error == nil) {
UIImage *image = [UIImage imageWithData:data scale:1.0];
dispatch_async(dispatch_get_main_queue(), ^{
[self setImage:image];
}] resume];
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。谢谢。
本文地址:
博客地址:
IOS开发 HTTP请求返回417 “Expectation Failed” 问题分析
我们使用AFNetWorking请求时候,出现HTTP请求返回417 “Expectation Failed” 问题,我们必须查找具体原因。
(lldb) po error
Error Domain=NSCocoaErrorDomain Code=3840 &Invalid value around character 1.& UserInfo={NSDebugDescription=Invalid value around character 1., NSUnderlyingError=0x1c4443000 {Error Domain=com.alamofire.error.serialization.response Code=-1011 &Request failed: expectation failed (417)& UserInfo={NSLocalizedDescription=Request failed: expectation failed (417), NSErrorFailingURLKey=http://www.jiejiedian.com/, com.alamofire.serialization.response.error.data=&0a075 e1 e36f 6d2e6d79 ae63 e3a204f e16c75 2d6e f031 5f855 525fc20 4c4ffc20 442c20 2cf50 454e5f49 442cf 554e494f 4e5f758 5f4e414d 452c6 cecf5c20 cf54e2c f7 425f562c 532c20 4d452c 22c20 cf54e2c c20 42c b455f49 528 3f2c203f 2c203f2c cf2cc20 3f2c203f 2c203f2c cf2c3f2c 3f2c3f2c 203f2c20 3f2cc20 3f2cc20 6e6fe 6fc203f20 290a1 636f6d 2e6de6a dc174 696f6e3a 61 a204f75 76 616cf72 6d6e20 0a 3bc205b5d 3be63 e3a204f e16c75 2d6e f031 3b206e65 69 6f6ef 6d2e6d79 ae4d1 ef6e 3af772031&, com.alamofire.serialization.response.error.response=&NSHTTPURLResponse: 0x1c4230440& { URL: http://www.jiejiedian.com/ } { Status Code: 417, Headers {
Connection =
&keep-alive&
&Content-Length& =
&Content-Type& =
&text/charset=ISO-8859-1&
&Thu, 12 Apr :49 GMT&
这时候我们需要了解到上面的com.alamofire.serialization.response.error.data的具体内容表示什么意思?我们需要做一下操作将NSData获取到,然后转换成NSString,具体操作如下
task = [_httpSessionManager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id
_Nullable responseObject, NSError * _Nullable error);
第一步、首先从error根据NSErrorFailingURLKey拿到value
NSError *errorFail = [error.userInfo objectForKey:@&NSErrorFailingURLKey&];
第二步、通过errorFail根据com.alamofire.serialization.response.error.data拿到value
NSData *data = [errorFail.userInfo objectForKey:@&com.alamofire.serialization.response.error.data&];
第三部、将NSData转成NSString,因为NSString字符串比较直观
NSString *errorString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
通过最后一步拿到的errorString,我们可以看出出现417 “Expectation Failed” 的具体原因。这次请求报错原因如下
//以下内容有省略,当然只要能看出原因就行了,当然出现这个错误,直接转到服务器端同学即可,MySql数据库操作出现问题
### Error updating database.
Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'LOGIN_CURRENTTIME' at row 1
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'LOGIN_CURRENTTIME' at row 1
; SQL []; Data truncation: Out of range value for column 'LOGIN_CURRENTTIME' at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'LOGIN_CURRENTTIME' at row 1
本文作为初学者的学习的记录,以便之后查阅。谢谢。
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。谢谢。
本文地址:
博客地址:
JS判断是否安装APP
通过url scheme 打开app成功,那么当前h5会进入后台,通过计时器会有明显延迟。利用时间来判断。
var button=document.getElementById("button");
var textarea=document.getElementById("text");
function openWindow (url){
var link = document.createElement('a');
link.target = "_blank";
link.href =
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
function testApp(url) {
var timeout, t = 1000, hasApp =
setTimeout(function () {
if (hasApp) {
alert('安装了app');
alert('未安装app');
document.body.removeChild(ifr);
var t1 = Date.now();
var ifr = document.createElement("iframe");
ifr.setAttribute('src', url);
ifr.setAttribute('style', 'display:none');
document.body.appendChild(ifr);
timeout = setTimeout(function () {
var t2 = Date.now();
if (!t1 || t2 - t1 < t + 100) {
//打开(下载)App
function openApp(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
alert('微信');
window.location.href='downLoadForPhone';
}else{//非微信浏览器
alert('非微信浏览器');
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
var loadDateTime = new Date();
window.setTimeout(function() {
var timeOutDateTime = new Date();
if (timeOutDateTime - loadDateTime < 5000) {
window.location = "";//ios下载地址
window.close();
openWindow('weixin://');
}else if (navigator.userAgent.match(/android/i)) {
var state =
window.location = 'schema://';
setTimeout(function(){
window.location= ""; //android下载地址
} catch(e) {}
button.addEventListener('click',function(){
con=confirm("点击好进行判断"); //在页面上弹出对话框
if(con==true) {
openApp();
如何判断是否是Android手机,iPhone设备,还是微信打开呢?下面给出一个object
* 客户端检测
export const JJDBrowserInfo = function() {
var json = {
userAgent: navigator.userAgent.toLowerCase(),
isAndroid: Boolean(navigator.userAgent.match(/android/ig)),
isIphone: Boolean(navigator.userAgent.match(/iphone|ipod/ig)),
isIpad: Boolean(navigator.userAgent.match(/ipad/ig)),
isWeixin: Boolean(navigator.userAgent.match(/MicroMessenger/ig)),
本文作为初学者的学习的记录,以便之后查阅。谢谢。
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。谢谢。
本文地址:
博客地址:
Spring mybatis相关配置 springmvc.xml、springmvc.xml、applicationContext-*.xml、SqlMapConfig.xml
Spring mybatis相关配置,目录如下
springmvc.xml
&context:component-scan base-package="com.street.client.web" /&
&mvc:annotation-driven /&
&!-- 资源映射 --&
class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
&property name="prefix" value="/WEB-INF/jsp/" /&
&!-- &property name="suffix" value=".jsp" /& --&
&!-- 资源映射 --&
&mvc:resources location="/WEB-INF/css/" mapping="/css/**" /&
&mvc:resources location="/WEB-INF/js/" mapping="/js/**" /&
&!-- 定义文件上传解析器 --&
&bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"&
&!-- 设定默认编码 --&
&property name="defaultEncoding" value="UTF-8"&&/property&
&!-- 设定文件上传的最大值5MB,5* --&
&property name="maxUploadSize" value="5242880"&&/property&
&!-- 输出对象转JSON支持 --&
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /&
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"&
&property name="messageConverters"&
class="org.springframework.http.converter.StringHttpMessageConverter"&
&property name="supportedMediaTypes"&
&value&application/ charset=UTF-8&/value&
&/property&
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"&
&property name="supportedMediaTypes"&
&value&application/ charset=UTF-8&/value&
&/property&
&/property&
&!-- 配置拦截器 --&
&mvc:interceptors&
&!-- 登录拦截器,需要登录的接口根据token判断是否登录,如果未登录则返回登录处理 --&
&!-- &mvc:interceptor&
&mvc:mapping path="/**" /&
&mvc:exclude-mapping path="/v1/api/oauth/*" /&
&mvc:exclude-mapping path="/v1/api/area/*" /&
&mvc:exclude-mapping path="/v1/api/p/find/ptypes" /&
&mvc:exclude-mapping path="/v1/api/p/pdetail" /&
&mvc:exclude-mapping path="/v1/api/note/getNotes" /&
&mvc:exclude-mapping path="/v1/api/note/find/notes" /&
&mvc:exclude-mapping path="/v1/api/note/detail" /&
&mvc:exclude-mapping path="/v1/api/note/getComments" /&
&bean class="com.street.client.web.interceptors.LoginInterceptor" /&
&/mvc:interceptor& --&
&/mvc:interceptors&
applicationContext-dal.xml
&!-- 加载配置文件 --&
&context:property-placeholder location="classpath:resource/db.properties" /&
&!-- 数据库连接池 --&
&bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close"&
&property name="url" value="${jdbc.url}" /&
&property name="username" value="${jdbc.username}" /&
&property name="password" value="${jdbc.password}" /&
&property name="driverClassName" value="${jdbc.driver}" /&
&property name="maxActive" value="10" /&
&property name="minIdle" value="5" /&
&property name="connectionInitSqls" value="set names utf8mb4;" /&
&!-- 配置sqlsessionFactory --&
&bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&
&property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"&&/property&
&property name="mapperLocations" value="classpath:mappers/*Mapper.xml" /&
&property name="dataSource" ref="dataSource"&&/property&
&!-- 配置扫描包,加载mapper代理对象 --&
&bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"&
&property name="basePackage" value="com.street.client.dal"&&/property&
applicationContext-service.xml
&!-- 配置扫描包 --&
&context:component-scan base-package="com.street.client.service" /&
applicationContext-biz.xml
&context:component-scan base-package="com.street.client.biz" /&
&!-- 配置面向切面注解支持 --&
&aop:aspectj-autoproxy proxy-target-class="true" /&
&aop:config proxy-target-class="true" /&
&!-- 配置声明式事务管理,使用注解的方式 --&
&bean id="dataSourceTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&
&property name="dataSource" ref="dataSource" /&
&tx:annotation-driven transaction-manager="dataSourceTransactionManager" /&
applicationContext-trans.xml
&!-- 事务管理器 --&
&bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&
&!-- 数据源 --&
&property name="dataSource" ref="dataSource" /&
&!-- 通知 --&
&tx:advice id="txAdvice" transaction-manager="transactionManager"&
&tx:attributes&
&!-- 传播行为 --&
&tx:method name="save*" propagation="REQUIRED" /&
&tx:method name="insert*" propagation="REQUIRED" /&
&tx:method name="add*" propagation="REQUIRED" /&
&tx:method name="create*" propagation="REQUIRED" /&
&tx:method name="delete*" propagation="REQUIRED" /&
&tx:method name="update*" propagation="REQUIRED" /&
&tx:method name="find*" propagation="SUPPORTS" read-only="true" /&
&tx:method name="select*" propagation="SUPPORTS" read-only="true" /&
&tx:method name="get*" propagation="SUPPORTS" read-only="true" /&
&/tx:attributes&
&/tx:advice&
&!-- 切面 --&
&aop:config&
&aop:advisor advice-ref="txAdvice"
pointcut="execution(* com.street.client.biz.*.*(..))" /&
&/aop:config&
SqlMapConfig.xml
&configuration&
&typeAliases&
&!-- 用户账号相关DO配置 --&
&typeAlias alias="account" type="com.street.client.domain.AccountDO" /&
&!-- 验证码相关DO配置 --&
&typeAlias alias="verifyCode" type="com.street.client.domain.VerifyCodeDO" /&
&/typeAliases&
&/configuration&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:spring/applicationContext-*.xml&/param-value&
&/context-param&
本文作为初学者的学习的记录,以便之后查阅。谢谢。
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。谢谢。
本文地址:
博客地址:
Mybatis配置xml、别名、数据表对应DO,DAO接口
Mybatis配置
作为初学者我的理解,如下图
ResultMap标签的type属性通过反射实例化领域模型
ResultMap标签的type属性和id、result等标签信息将HashMap中的键值对,填充到领域模型实例中并返回
SqlMapConfig.xml
SqlMapConfig文件配置用户账号相关DO配置、验证码相关DO配置等等DO,针对数据库中的表进行相对应的配置。数据库表字段相对应相应的的DO类字段。
&?xml version="1.0" encoding="UTF-8" ?&
&!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd"&
&configuration&
&typeAliases&
&!-- 用户账号相关DO配置 --&
&typeAlias alias="account" type="com.muye.naruto.domain.AccountDO" /&
&!-- 验证码相关DO配置 --&
&typeAlias alias="verifyCode" type="com.muye.naruto.domain.VerifyCodeDO" /&
&/typeAliases&
&!-- 配置分页插件 --&
&plugin interceptor="com.github.pagehelper.PageHelper"&
&!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库 --&
&property name="dialect" value="mysql" /&
&/plugins&
&/configuration&
applicationContext-dal.xml
applicationContext-dal配置sqlsessionFactory与配置扫描包,加载配置文件db.properties,自动扫描与装配bean,数据库连接池等。加载mapper代理对象
sqlsessionFactory设置configLocation,这个指定了SqlMapConfig.xml文件,配置mappers对应的配置文件mapperLocations文件,通配符表示classpath:mappers/*Mapper.xml。
&!-- 配置sqlsessionFactory --&
&bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&
&property name="dataSource" ref="dataSource" /&
&property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"&&/property&
&property name="mapperLocations" value="classpath:mappers/*Mapper.xml" /&
配置扫描包,加载mapper代理对象。annotationClass以及扫描包
&!-- 配置扫描包,加载mapper代理对象 --&
&bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"&
&property name="annotationClass" value="org.springframework.stereotype.Repository" /&
&property name="basePackage" value="com.street.client.dal"&&/property&
加载数据库配置文件db.properties
&context:property-placeholder location="classpath:resource/db.properties" /&
自动扫描与装配bean,这个包中对应DAO文件,DAO声明接口 增删改查功能接口
&!-- 自动扫描与装配bean --&
&context:component-scan base-package="com.street.client.dal" /&
配置数据库连接池
&!-- 数据库连接池 --&
&bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close"&
&property name="url" value="${jdbc.url}" /&
&property name="username" value="${jdbc.username}" /&
&property name="password" value="${jdbc.password}" /&
&property name="driverClassName" value="${jdbc.driver}" /&
&property name="maxActive" value="10" /&
&property name="minIdle" value="5" /&
&property name="connectionInitSqls" value="set names utf8mb4;" /&
在web.xml中配置加载spring容器。
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:spring/applicationContext-*.xml&/param-value&
&/context-param&
本文作为初学者的学习的记录,以便之后查阅。谢谢。
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。谢谢。
本文地址:
博客地址:
产品及移动客户端通用交互UI梳理
今天写这篇文章呢,也没有去吐槽产品经理的意思。毕竟自己不是从事产品经理这个职位,无权去做任何说明与吐槽批评。最近想做些总结与梳理。这篇文章针对我实际遇到的问题产品及客户端的一种梳理
通用异常显示UI
当显示页面的时候,可能会因为网络问题、数据删掉等问题,导致显示异常。这个时候需要通用的异常处理页面UI,比如一下几种情况
1、网络异常
2、没有数据
3、数据已经被删除
这类异常显示UI,可以采用通用的风格的显示样式,但是由于版本历史原因,不同的人喜欢的风格不一样,一直没有达到一种统一的风格,显得较为混乱。
其他效果图参考
通用Alert弹窗提醒样式
Alert比较常见,普遍UI采用系统默认的样式,比如IOS的UIAlertView。当然系统的比较方便,但是也有一些问题,比如不同系统版本显示的样式不统一,IOS6、IOS7、IOS8 &#8230; 版本,不同的版本Alert显示的圆框,字体等都有差别。以下借鉴微信的提示alert风格。
绿色风格 (default)
黄色风格 (primary)
红色风格 (warn)
通用按钮样式Button
Button比较常见,Button在一个app里面会出现各式各样的button,但是app主色调,风格基本上都保持一种。风格一致的button,以下借鉴微信的提示alert风格。
绿色风格 (default)
黄色风格 (primary)
红色风格 (warn)
通用底部弹出抽屉式样式UI
很多app,比如微信、微博,会统一底部弹出抽屉式样式UI。这种的也有很多以系统默认的样式显示,但是在不同系统下会显示不同,字体,是否有边框,是否有圆框等都会有区别。统一风格会显示更加协调。
通用toast弹出
app中都会有toast,以便提示用户网络出错、服务器异常、参数错误等等提示。toast提示完后会自动消失。这种可以使用MBProgressHUD、SVProgressHUD这种第三方的库,当然也可以自定义。
通用底部分享菜单UI
app中都会有分享到第三方平台,以便增加app宣传的目的。这类样式一般有以下两种样式
通用POP弹出菜单样式UI
app中可能有POP弹出菜单样式,这种风格常见于导航更多按钮,以遍提供更多的选择,如以下
以上列举部分通用UI样式,之后发现一些,会继续更新归类。
本文作为初学者的学习的记录,以便之后查阅。谢谢。
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。谢谢。
本文地址:
博客地址:
IOS 私有pod库方案及流程
Cocoapods私有库
制作了私有pod库,总是记不住相关命令。现在梳理下流程。
在gitHub创建项目存放私有Repo源
repo地址:https://github.com/gloryFlow/FBBRepositories.git
本地添加私有源 终端执行命令pod repo add FBBRepositories https://github.com/gloryFlow/FBBRepositories
如果之前并未向gitHub push过文件也没有把SSH公钥保存到gitHub,这时候应该会提示你输入gitHub账号密码
以上操作完成 cd ~/.cocoapods/repos目录下至少会有2个文件夹 FBBRepositories 和 master, master文件。下面存放的是公有源文件, FBBRepositories*目录下目前是空的,后面会存放我们私有源文件
比如我这里创建的是FBBShopCenter项目工程。地址:https://github.com/gloryFlow/FBBShopCenter
git命令将项目更新到本地
git clone https://github.com/gloryFlow/FBBShopCenter.git
创建FILE_LICENSE文件
echo MIT&FILE_LICENSE
创建podspec文件
pod spec create FBBShopCenter
编辑podspec文件
vim . FBBShopCenter.podspec
FBBShopCenter.podspec 具体详情详见demo
通过xcode创建工程,最终的工程目录如下
通过git命令上传代码
查看改动 git status
FBBShopCenter git:(master) ? git status
On branch master
Your branch is up-to-date with &#039;origin/master&#039;.
Changes not staged for commit:
(use &git add &file&...& to update what will be committed)
(use &git checkout -- &file&...& to discard changes in working directory)
FBBShopCenter.podspec
ShopCenter/FBBShopCenter/FBBShopCenter.xcworkspace/xcuserdata/guobingwei.xcuserdatad/UserInterfaceState.xcuserstate
ShopCenter/FBBShopCenter/FBBShopCenter/ShopCenter/ShopCenterPageViewController.m
no changes added to commit (use &git add& and/or &git commit -a&)
执行git add
FBBShopCenter git:(master) ? git add .
提交commit
FBBShopCenter git:(master) ? git commit -m &#039;更改代码&#039;
[master bc78411] 更改代码
3 files changed, 2 insertions(+), 2 deletions(-)
rewrite ShopCenter/FBBShopCenter/FBBShopCenter.xcworkspace/xcuserdata/guobingwei.xcuserdatad/UserInterfaceState.xcuserstate (85%)
更新代码pull
FBBShopCenter git:(master) git pull
Enter passphrase for key &#039;/Users/a/.ssh/id_rsa&#039;:
Already up-to-date.
FBBShopCenter git:(master) git tag 0.1.4
tag一定要和podspec中的version一致
提交代码及tag
FBBShopCenter git:(master) git push origin master --tags
Enter passphrase for key &#039;/Users/a/.ssh/id_rsa&#039;:
Counting objects: 12, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (12/12), 18.52 KiB | 9.26 MiB/s, done.
Total 12 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), completed with 5 local objects.
To github.com:gloryFlow/FBBShopCenter.git
984d38b..bc78411
master -& master
* [new tag]
0.1.4 -& 0.1.4
&#8211;tags为了提交tag
验证无法通过
我们提交命令
pod repo push FBBRepositories FBBShopCenter.podspec --verbose --allow-warnings --use-libraries --sources=&#039;https://github.com/gloryFlow/FBBRepositories.git,https://github.com/CocoaPods/Specs.git&#039;
出现.swift-version 错误时候
- ERROR | [iOS] unknown: Encountered an unknown error (The `JJDRouterManager` pod failed to validate due to 1 error.
[!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run:
`echo "2.3" & .swift-version`:
- ERROR | license: Sample license type.
| homepage: The homepage has not been updated from default
.swift-version文件用来知道swift版本,需要执行以下命令
`echo "2.3" & .swift-version`:
验证,定位问题所在
当错误信息比较简单的时候,我们可以使用&#8211;verbose来显示更多的调试信息,以便我们更快定位到错误。
pod spec lint FBBShopCenter.podspec --verbose --allow-warnings --use-libraries --sources
pod trunk push FBBShopCenter.podspec --verbose --allow-warnings --use-libraries --sources
当然这里我们执行pod spec lint
FBBShopCenter git:(master) ? pod spec lint FBBShopCenter.podspec --verbose --allow-warnings --use-libraries --sources='https://github.com/gloryFlow/FBBRepositories.git,https://github.com/CocoaPods/Specs.git'
当我们出现以下成功的提示的时候:
Analyzed 1 podspec.
FBBShopCenter.podspec passed validation.
FBBShopCenter git:(master) ? pod repo push FBBRepositories FBBShopCenter.podspec --verbose --allow-warnings --use-libraries --sources='https://github.com/gloryFlow/FBBRepositories.git,https://github.com/CocoaPods/Specs.git'
Pushing the `FBBRepositories' repo
$ /usr/bin/git -C /Users/guobingwei/.cocoapods/repos/FBBRepositories -C
/Users/guobingwei/.cocoapods/repos/FBBRepositories push origin master
Enter passphrase for key '/Users/guobingwei/.ssh/id_rsa':
To github.com:gloryFlow/FBBRepositories.git
d4676cb..214c73b
master -& master
执行成功。我们看下github上提交成功的记录,版本号0.1.4。
如下图所示
&#8211;verbose
来显示更多的调试信息
&#8211;sources
使用命令pod spec lint 或者 pod repo push 去验证私有库能否通过验证时,尽量添加&#8211;sources选项,不然会出现找不到repo的错误,建议加上该选项。
&#8211;allow-warnings
使用命令pod spec lint 或者 pod repo push 去验证私有库能否通过验证时,使用&#8211;allow-warnings选项以允许警告,建议加上该选项。
&#8211;use-libraries
使用命令pod spec lint 或者 pod repo push 去验证私有库能否通过验证时,使用&#8211;use-libraries选项以便引用私有库、静态库的情况,建议加上该选项。
希望能拆分项目
拆分项目达到以下目标
本文作为初学者的学习的记录,以便之后查阅。谢谢。
谢谢您的阅读,希望本站及文档能带给你帮助,给你带来简洁明了的阅读体验。谢谢。
本文地址:
博客地址:

我要回帖

更多关于 手机窗口小部件添加 的文章

 

随机推荐