Leon's blog

每天活的有趣一点

正在浏览标签为 ios 的文章

前端开发调试工具非常方便,Firefox下有Firebug,Google Chrome和Safari下有Web inspector。 但是手机上的浏览器调试一直还没有特别好的工具。随着iOS 6的退出,这一现象得到了很大的改变。现在可以通过桌面Safari的Web inspector直接调试,iOS 6上浏览器里的网页内容了,几乎跟调试桌面浏览器里的页面一样快,一样方便。唯一的遗憾是,似乎还只有Mac下的Safari 6支持这个功能,Windows下的Safari版本还不行。也许这也是Apple促销Mac的一个手段吧。

调试iOS 6上浏览器里的页面的具体步骤如下

  1. 在iOS 6上的Safari设置里开启Web inspector选项。并把设备通过数据线连接到Mac。

iOS 6 Safari inspector-1

  1. 打开Mac上的桌面Safari,在Develop菜单下将会出现连接了的iOS 6设备。选择这个设备下要调试的页面。

iOS 6 Safari inspector-2

  1. 在桌面Web inspector上选取Html元素,手机上将高亮显示

iOS 6 Safari inspector-3

  1. 当然除了高亮显示,其他修改、查看页面加载过程,调试Javascript等一样也不少

iOS 6 Safari inspector-4

update

iOS6 与应用内购买破解

抢沙发

之前写过一片关于iOS5 应用内购买破解的文章,是使用iAP Cracker的。现在 iOS6 出来有一段时间了,iOS6的越狱工具也成熟了,很多人应都用上iOS6了吧。

但是iAP Cracker却不支持 iOS6 的应用内购买破解。不过已经有别的应用能做这件事情了,它就是iAPFree。iAPFree对iOS4、iOS5、iOS6都支持,所以你可以放心的用它替换iAP Cracker了。

下面是使用iAPFree的具体方法。

  1. 首先到Cydia里的管理里去添加一个软件源,软件源的地址是: cydia.crazydoraemon.com

  2. 然后在Cydia里打开这个软件源,安装里面的iAPFree应用,并重启Springboard

  3. 进入iAPFree,开启启用已安装插件开关,在更多插件里查找并安装免费内购核心功能插件,退出并重启Springboard

OK, 一切正常的话,你现在可以找个App去试试了。

update 2013/04/22

实际使用下了发现iAPFree比iAP Cracker还是差很多,在iOS6下不能破解的应用很多。 现在换成使用LocalIAPStore,好像好一些。具体设置步骤如下:

  1. 首先到Cydia里的管理里去添加一个软件源,软件源的地址是: http://system.in-appstore.com/repo/

  2. 然后在Cydia里打开这个软件源,安装里面的LocalIAPStore应用,并重启Springboard

  3. 进入系统设置,找到LocalIAPStore的设置,进入启用之,同时开启Generate custom receipt

  4. 这是后再去应用内购买,当提示付费时,点击取消后,会再收到一个已购买的提示就对了。

Done, 试试吧。

参考文章

有时候换个思路想问题,得到的结果会很不一样,很简单。

比如破解Snoopy’s Street Fair小狗币时,我是按照以前玩单机电脑游戏的思路:游戏的纪录都保持在本地,只要找到了保存纪录的文件,就可以通过玩游戏时该文件数据的变化来找到保存数据的具体内容和位置。
这招确实管用,但是就是太繁琐了,而且要借助些文件比较的工具,耐心的找想要的数据。

当数据变化不是很明显时,这个方法就不太管用了。

其实类似Snoopy’s Street Fair的这种购买方式在Apple的应用商店上叫做应用内购买
现在很多App采取这种销售方式:允许免费使用App,但是只是基本功能或者有限的道具,当需要更高级的功能、更多的道具时,就会引导用户进行购买。

关于应用内购买的破解,其实早就有了。原理我猜大概是截获App Store的应用内购买接口,永远返回购买成功。具体步骤不清楚。
所以在玩Snoopy’s Street Fair时,如果你想获得更多的小狗币,其实不必像我之前那样那么麻烦,你只需要安装相关的软件,就可以一劳永逸的破解很多应用内购买了。

具体的步骤是这样:

  1. 首先你必须确保你的iPhone或iPad是已经越狱过了的
  2. 如果你符合条件1,那么就可以进入Cydia
  3. 进入Manage,进入Sources;点击Edit,然后点击add。添加这个源到Cydia: cydia.xsellize.com 。如后图所示。
  4. 现在在Cydia里搜索iAP Cracker,并安装。

OK,如果一切顺利,应用内购买破解就完成。

值得注意的是如果破解成功,在进行应用内购买时是不需要输入App Store的密码的!所以如果提示输入密码,说明破解不成功,输入密码将会扣费,谨记。

破解有风险,后果请自负。

这里有一份iAP Cracker支持的App列表

不过看来iAP Cracker还不支持Where’s My Water?,玩小鳄鱼的同学们还要等。知道如果破解小鳄鱼应用内支付的方法的请赐教啊。

参考自:http://www.technobolt.com/2011/12/24/how-to-get-free-crack-in-app-purchase-on-iphone-and-ipad-apps/

最近使用mediaelementjs做一个iPad上的Html5的video标签的播放器包装.
首先感谢一下mediaelementjs这样的开源项目, 可用度极高, 代码质量明显比我自己写要好多了, 模块化清晰, 许可证很开放(MIT).

开发的过程中遇到了些浏览器兼容问题, 也涉及到一下iPad这样的平板平板设备上的浏览器与桌面浏览器在用户行为设计上的不同的问题. 下面罗列一下:

0. position:fixed
最著名的应该是iOS5之前的版本不支持css的 position:fixed 了吧.

1. 脱离浏览器的视频播放和全屏问题
在手机上, 如iPhone, 浏览器对video标签的处理, 基本上是直接使用系统的媒体播放器播放. 这时由于已经脱离了浏览器, 所以没有办法在播放视频的同时在屏幕上叠加任何显示元素. iPad好一点, 能在页面内直接播放视频, 但是一但用户选择了全屏播放, 则进入iPhone一样的状态. 只有桌面上的Chrome对这个支持的最好, 全屏状态下依然能够叠加浏览器里元素; Firefox逊色些, 全屏并没有全屏显示, 而是把视频充满了当前浏览器窗口.

2. 音量控制问题
在iOS设备上, 浏览器没有办法通过Javascript来操作音量控制, 不管是调节音量大小, 还是静音都不行. 读取当前音量也永远只会得到1. 这又是Apple故意的吧.

3. 剪贴板问题
在iOS设备上, 不能通过Javascript访问系统剪贴板. 用户只能在文字上单击, 调出系统的拷贝粘贴按钮. 要是不想让用户拷贝粘贴倒是有办法, 使用这个CSS.

    -webkit-user-select: none;

4. 文本框文字选取问题
在iOS设备上, 不能通过Javascript访问textarea元素的select()来选中该元素的文字, 得到的只不过是把光标移到到了文字的最后位置.

5. 文本框滚动条问题
在iOS设备上, textarea元素没有滚动条, 你看不出到了, textarea什么位置了. 滚动只能通过双指滑动来实现, 这应该算是多点触摸设备的特性吧.

6. 边框问题
默认情况下, iOS在你单击元素时, 会显示一个难看的边框. 像是在使用Firebug做调试一样, 我想最终用户可不行看到这个. 这个可以通过CSS修正.

    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);

7. touch events的支持问题
jQuery本身不支持touch events, 所以同jQuery绑定如touchmove这样的事件事, 收不到事件. 因为jQuery复制touchmove的event对象是有些属性读不到, 认为这个事件不合法直接跳掉了. 直接使用DOM元素的addEventListener()方法没问题.

参考文档:

当mobl遇上新浪微博

抢沙发

1.mobl上的twitter trends例子

mobl上关于twitter trends的这个例子,还是蛮好玩的。通过调用twitter的API,得到当下twitter上流行的话题。然后再根据每个话题,显示出最近这个话题的tweets。


2.mobl上的twitter trends例子

照猫画虎,来试试做一个新浪微博的类似应用。查了一下微博的API,遗憾的发现关于话题的API还都处于beta状态。而且要用户登录以后才能调用,不像twitter在不登录的情况下就能调用trends类的API。
新浪微博只有Search类的API有不登录调用的API,我们就拿search模拟一下吧。
继续阅读