日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSPatch使用篇

發布時間:2023/12/29 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSPatch使用篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ios端熱更新方案:
1.動態庫,測試用,真實使用的話會被蘋果禁止.
2.lua腳本
比如:wax,熱更新時從服務器拉取lua腳本,游戲開發用的比較多
3.weex
跨平臺,一套代碼,兩端運行,用前段語言實現原生效果.
4.React Native
不能像weex能一套代碼多端運行,有些代碼需要2端分別編寫
其中熱更新有pushy/codepush
5.hybrid
比如ionci等基于PhoneGap之類的框架,基本和web差不多,通過js/html實現
6.JSPatch
熱更新時,從服務器拉去js腳本。理論上可以修改和新建所有的模塊,但是不建議這樣做。
建議 用來做緊急的小需求和 修復嚴重的線上bug。
7、DynamicCocoa
滴滴iOS的一個框架,準備在2017年初開源,與JSPatch比更加智能化,用OC在XCode中寫完代碼,用工具可以自動生成可以更新的js文件。

本文時基于JSPatch實現的ios端熱更新demo
官網https://jspatch.com/Docs/monitor
git:https://github.com/bang590/JSPatch/wiki/JSPatch-基礎用法
理論:jspatch,利用js文件調用原生,將js文件上傳到服務器,每次打開應用自動從服務器拉取最新的js腳步文件
下載jspathSDK
然后添加依賴庫
JavaScriptCore.framework
libz.tbd
然后在appdelegate中初始化

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {//上線從jspatch服務器拉取main.js文件 // [JSPatch startWithAppKey:@"3d6fb547d37b476a"]; // [JSPatch setupRSAPublicKey:@"-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCj0jtipMN8hjEdYVOyXInl3Hy/w3oOnf/5rIMY9UYdxuKLUWO+0dIjwtVsgjertZqcBjYDrQF5hX37AYMBSXgeNRqCZBzfw7j2N8EJzuFG8Hu9WFhPXLc0wbcQOlwJwCd/CJ+vzL864C+m/lzguYHXglK7dOu6lueBKVspqfkg+QIDAQAB-----END PUBLIC KEY-----"]; // [JSPatch sync];//測試從本地[JSPatch testScriptInBundle];[JSPatch sync];// Override point for customization after application launch.return YES; }

代碼
數組越界錯誤

#import "ViewController.h"@interface ViewController () @property(nonatomic,copy)NSArray *ErrorArray; @end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];} - (IBAction)touchError:(id)sender {[self errErray];} //js調用它來解決熱更新 -(void)errErray{NSString *str = self.ErrorArray[3];NSLog(@"%@",str);}-(NSArray*)ErrorArray{if (!_ErrorArray) {_ErrorArray = [NSArray new];}return _ErrorArray; }

mian.js文件代碼(這個就是jspatch核心來 用它來調用oc)

defineClass("ViewController",{errErray:function() {self.setErrorArray(["1","2","3","4"])var str = self.ErrorArray().objectAtIndex(2)console.log('JSPatch調用')}});

總結

以上是生活随笔為你收集整理的JSPatch使用篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。