初識(shí) JSPatch

前言說明:

? ? 前段時(shí)間看新浪微博的一些文章,有位葉大神提到 JSPatch 的作者和一些關(guān)于 JSPatch 的文章,遂去了解了一下.


1.可以干什么(了解 JSPatch)

? ? 蘋果開發(fā)者,要想你編寫的應(yīng)用讓更多的人下載使用,你就必須讓你的應(yīng)用上傳到蘋果應(yīng)用商店.一旦蘋果商店里面的應(yīng)用出現(xiàn)bug,你就要解決 bug, 然后從新更新版本. 如果從新更新的話蘋果審核快則一個(gè)星期,慢則半個(gè)月,在此期間用戶對(duì) App 的體驗(yàn)就會(huì)很差,一旦是重大的 bug, 更需要即時(shí)更改.雖然今年六月份之后 App 上線的速度快了很多,大概兩天左右,但是遇到比如崩潰等問題,也是需要越即時(shí)修復(fù)線上 bug.

JSPatch利用javascript調(diào)用蘋果原生的接口,替換任意的 Objective-C,修復(fù)線上 bug.

2.準(zhǔn)備工作

1.在 JSPatch 平臺(tái)注冊(cè),新添加 App,生成 AppKey, 和很多第三方平臺(tái)注冊(cè)一樣.

2.在該平臺(tái)下載 SDK,集成到項(xiàng)目里面

3.導(dǎo)入JavaScriptCore.framework框架,這個(gè)框架是JavaScript 調(diào)用 OC 原聲接口用的

3.使用 JSPatch

1.導(dǎo)入頭文件

#import <JSPatch/JSPatch.h>

2.在application:didFinishLaunchingWithOptions:方法里面測試一下怎么用 JSPatch

[JSPatch testScriptInBundle];

注意:實(shí)時(shí)性不高的 App 在application:didFinishLaunchingWithOptions:方法里面調(diào)用一次就行了,實(shí)時(shí)性高的 App 在applicationDidBecomeActive:里面調(diào)用

4.測試

1.項(xiàng)目測試

每組多少個(gè),默認(rèn)返回一組

?cell 的復(fù)用

跑完程序一定崩潰

2.新建 main.js 文件


直接把 File 文件改成 main.js


3.然后在main.js里面用 javascript代理直接調(diào)用蘋果的原生代碼進(jìn)行更改

defineClass("ViewController", {

tableView_cellForRowAtIndexPath:function(tableView, indexPath) {

varcell = tableView.dequeueReusableCellWithIdentifier("cell")

if(!cell) {

cell = require('UITableViewCell').alloc().initWithStyle_reuseIdentifier(0,"cell")

}

cell.textLabel().setText("1")

returncell

},

}

)

這里對(duì)項(xiàng)目里面 ViewController類里面的tableView_cellForRowAtIndexPath:這個(gè)方法進(jìn)行了從新編寫,用的是javascript,這樣你在跑一下就不會(huì)崩潰了,因?yàn)閺男戮帉懥藅ableView_cellForRowAtIndexPath:這個(gè)方法里面的代碼,然后這一句cell.textLabel().setText("1")就相當(dāng)于self.textlable.text = @"1";

所以得到了實(shí)現(xiàn)了javascript更改 OC 源代碼

還有一些關(guān)于線上版本的管理,灰度和條件發(fā)布,自定義RSA密鑰必要和安全問題沒有介紹以后補(bǔ)上,還有這個(gè) JSPatch 調(diào)用次數(shù)超過一定量的時(shí)候,會(huì)收取一定的費(fèi)用,具體收多少, JSPatch 有介紹

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容