我的微信公众号项目都是用 anchor hash 导航的 SPA,没有用 turbolink,实践上只要在首页进行 JS SDK 的签名就可以。
这是微信 iOS 的浏览器内核切换到 WKWebView 后出现的一个问题,根据官方文档
三:有使用JSSDK,并且使用了wx.config进行权限授权需关注jsapi调用的失败问题
变化:WKWebview的内部实现变更使我们对微信内的页面jsapi权限管理做了一定逻辑上的调整,有极小可能会发生以前授权正常的jsapi获取权限不正常,从而导致调用jsapi失败。
适配建议:
1. iOS微信6.5.1,WKWebview在此版本中已知有以下问题:页面使用HTML5的History API pushState; popstate; replaceState等控制页面导航(典型的如单应用页面),同时使用JSSDK的wx.config为jsapi授权,此时大几率会出现jsapi因为无权限而调用失败的问题。 在6.5.1中页面若可能的情况下,可使用Anchor hash技术替换History技术来解决此问题。
2. iOS微信6.5.2及其之后版本,将不会存在以上问题,但不能100%确认有使用到 history或hash技术更改页面导航地址的页面完全没有此类问题,依然需要开发者注意关注此类问题。
可以考虑在 Turbolink 切换页面的回调里面请求一次 API,从服务器拿到签名参数,并在客户端进行签名操作。(可以借助 wechat gem 里面的一些方法)。下面的代码是我写的一个调用的例子,直接返回给客户端的 JavaScript 进行 eval(可能这样做很 evil),但是能正常跑起来。
def signatuer_js(page_url)
config_options = {debug: false, api: %w(chooseImage previewImage uploadImage chooseWXPay)}
js_hash = wechat.jsapi_ticket.signature(page_url)
return <<-WECHAT_CONFIG_JS
wx.config({
debug: #{config_options[:debug]},
appId: "wechat app id",
timestamp: "#{js_hash[:timestamp]}",
nonceStr: "#{js_hash[:noncestr]}",
signature: "#{js_hash[:signature]}",
jsApiList: ['#{config_options[:api].join("','")}']
});
WECHAT_CONFIG_JS
end
RubyChinaConf 的贴纸
我觉得有前途。
1.Rails 并非没人气。 Google 搜索趋势- Django,Rails 和 Laravel 可以看到在全球范围内,Rails 比 Django 和 Laravel 等热门框架还热门。结合实际看到的内容,Rails 社区活跃,框架稳步发展,应用广泛,并没有没落。
包含内容丰富,初期可以学习的东西多。Rails 在一定程度内是小型 Web 应用开发的最佳实践,默认包含了前端打包、Web 安全等等内容新。手或者初级程序员如果能掌握 Rails,能到熟练运用 Rails API 解决业务、能写扩展并且能理解背后的原理的程度,在学习过程中掌握的内容其实非常丰富,并且能反哺到运用其它语言、框架进行 Web 开发的场景中。
单兵、小团队开发效率高。Rails 结合 Ruby 语言,验证原型、做小型业务效率非常高。
生态圈质量好。因为在国内的小众,导致社区氛围和资料的质量都很好。不容易接触烂书烂资料。 --- 上面 1234 是 markdown 解析错了还是我排版错了。。。 ---
结合 lz 的总结我也提下自己的感受:
公司难招人:国内圈子小这个是事实,也是在国内做 Rails 的一个大缺点。不过国内应该有少数规模小、也不追求快速膨胀扩张的公司,做自己的产品和外包、咨询业务,这种场景用 Rails 没什么不好。也不需要招很多人。上规模的企业,会从各个方面去权衡利弊,也不一定会因为难招人一棍子打死 Rails。同时 Ruby 在测试、运维、开发工具里应用还算比较多?
个人难专精:我自己接触了四五年 Rails,花在上面时间不超过 200 小时,写的 Ruby 代码不超过 4000 行(但是其实用这些 Ruby 代码产出的成果和回报还不错。。),感觉已经从 Rails/Ruby 里收益匪浅了。 学点入门花不了多少时间,并非人人学 Rails 都要成为大师。
我来补充一个感觉挺有用的库 parallel。
对于代码的并发执行进行封装,可以选择开多个进程 (充分利用多核),多个线程 (可以加速阻塞 IO 多的代码执行), 还能结合 ruby-progressbar
显示预计运行的时间。
# Doing stuff | ETA: 00:00:02 | ==================== | Time: 00:00:10
前几天收集数据需要发 20000 个 HTTP 请求,直接把代码用 parallel 包装一下,结果数据直接交给 ActiveRecord 存数据库,不用考虑并发的各种通信和锁的问题,执行速度粗略估计是顺序执行阻塞的操作的十倍。(代码连 require 不到 20 行)。
虽然 Ruby 性能相比较其它语言差一点,但是大部分应用代码瓶颈还是 IO,CPU 很少满载,合适的并发执行带来的效率提升是惊人的。
做爬虫 Python 相关的库更加丰富,但是对于简单的数据爬取,parallel + Nokogiri,加上 Ruby 语言,简直不能更棒。
PPT 和 App 都很棒 ,不过我觉得 iOS 版第一个 Tab 顶部的 UISegmentedControl 换个配色,网络加载的 Indicator 提升下样式效果就很好了
我当时多交的一倍的钱报的 VIP,一对一,不用排队,算下来除了考试实际花的时间也就是两周半,每天三小时。算是用钱换时间。
学车虽然需要花一些成本,但是多一项这样的技能,就能做一些之前做不了的事情,像自驾游,通勤等。一线大城市公共交通很完善,但是在公共交通不发达的地方,以及一些恶劣天气下,有一个机动工具真的方便很多。
虽然可以用到的时候再学,但是总体来说越往后付出的机会成本会越大。
每月 600 远餐补 IOS 届大神唐巧是你的队友
改变中国初高中教育不应该先纠正招聘文案的错别字嘛 😂
我记得去年 RubyConfChina 结束的时候说下届在成都的~
有朋友用过你们的服务,感觉挺不错的~
不过,虽然再三强调
其实我们仅仅是一个初创的 O2O 公司,工作环境还很艰苦,现在还是保持着 6x12 的工作强度,工作的内容非常琐碎,我们没有可以配得上让你如此辛苦工作的薪酬,甚至我们无法承诺未来可以将期权兑换股票。。。
但是没有表现自己其他优势的招聘贴总感觉好奇怪,虽然很坦诚。。。但是互联网 + 传统企业的组合,技术有挑战的简单一提,相比之下并没有非常有吸引力的样子。。55534.。。。。。。(最后的数字是我家喵星人打的。。)
66
苹果想实现应用关闭后后台的推送必须走 APN,Ruby 的服务器端实现可以参考这个开源项目 https://github.com/nomad/houston
Android 的话,有以下几种方案 - 自己写一个后台 service 定时拉取数据。实现简单,耗流量耗电 - 自己实现一个后台稳定的长链接,实现推送。技术要求比较高。 - 采用 Google 的 GCM,国内不推荐,原因你懂的。 - 使用第三方 BASS 平台提供的开发者服务,一般提供了 iOS 和 Android 的 SDK,管理界面和 REST API 接口,折腾半天第一次配置好跑通之后,也就没有特别要操心的了。而且它们一般实现比自己写的要好。如果面向国外用户,个人推荐 Parse.com, 面向国内的话推荐 avoscloud.com。(不过我在国内实测 parse.com 的推送有时候比 avoscloud 还及时。。。)另外还有极光推送和个推是国内专一做这块的服务,百度云推送和腾讯信鸽推送这些。你可以看看。
======
总之,推荐使用 parse.com 或者 avoscloud.com 的服务
报名+1
makeIncrementer 的返回类型是一个 (Int -> Int) 类型的函数函数,也就是说这个函数接受一个 Int 类型的参数并且返回 Int 类型的值
同为第一期学员,赞一个 Howard 的课程。
+1
前一段时间我也出现这个情况。。。
最后发现是因为之前觉得硬盘太小。。把虚拟内存禁用了的缘故。。用一会儿内存就爆满了。
重新启用,问题解决
北京暖气好暖和~室外即使冷些穿些衣服或者在路上也没什么。。。
南方室内如果没有暖空调什么的话很冷。。。
我现在用英雄 100。。。
+1
有南京的组队么。。