2017-12-04(週一)JS和OC互調
好久沒寫週一筆記了,日常柴柴鎮樓。
愉快的週末 在吃雞中度過,很氣人的是幾次第二 就是沒吃到雞,現在亞服的外掛太猖狂了,基本每局都能碰到神仙,也是屌的不行。所以 經過我們一致認為,暫時先回歸LOL ,等一手騰訊爸爸 後續的操作。 OJBK 言歸正傳,回到工作,上一週我積累了什麼東西呢。
javascriptCore 庫, 對比幾種OC和JS 互動 發現這個是最簡單 也是直接依賴於蘋果自己,而不需要引入第三方庫的,使用起來很舒服。
以下是程式碼截圖:
1.獲取webViewContext 新增事件監聽.
#pragma mark - private method
- (void)addCustomActions
{
JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
[context evaluateScript:@"var arr = [3, 4, 'abc'];"];
[self addScanWithContext:context];
[self addLocationWithContext:context];
[self addSetBGColorWithContext:context];
[self addShareWithContext:context];
[self addPayActionWithContext:context];
[self addShakeActionWithContext:context];
[self addGoBackWithContext:context];
}
2.JS呼叫OC的程式碼
- (void)addScanWithContext:(JSContext *)context
{
// JS呼叫OC
context[@"scan"] = ^() {
// NSLog(@"掃一掃啦");
UIAlertView * alertV = [[UIAlertView alloc]initWithTitle:@"哈哈" message:@"JS呼叫OC程式碼" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];
[alertV show];
};
}
3.OC呼叫JS的程式碼
// 將分享結果返回給js
NSString *jsStr = [NSString stringWithFormat:@"shareResult('%@','%@','%@')",title,content,url];
[[JSContext currentContext] evaluateScript:jsStr];
重要說明 其實JS和OC的互調很簡單,只需要JS方和OC方協調統一好方法,就可以很簡單的實現互相呼叫。
這裡擷取一點HTML 中的JS程式碼。按鈕點選事件觸發對應2中的OC scan 方法。系統列印出 “掃一掃”
<input type="button" value="掃一掃" onclick="scanClick()" />
function scanClick() {
scan();
}
總結 JS和OC之間的互調還是蠻簡單的,以前借用第三方的JavaScriptBridge 來實現這功能,現在蘋果自帶這庫 直接引用即可,更加方便省事了。
相關文章
- WebViewJavascriptBridge JS和OC互動WebViewJavaScriptJS
- Cordova JS OC互動方法JS
- WebView和js的互調WebViewJS
- OC WKWebView的JS與OC互動、Cookie管理WebViewJSCookie
- oc 與js 的原生互動JS
- oc 與 js互動之vue.jsVue.js
- JS 與 OC 互動的三種方法JS
- iOS開發:網頁JS與OC互動(JavaScriptCore)iOS網頁JSJavaScript
- Android與JS互調AndroidJS
- HTML5接入與OC互動HTML
- WPF和js互動 WebBrowser資料互動JSWeb
- 短視訊開發,Android和JS互調實現圖片傳遞AndroidJS
- 《每週一點canvas動畫》——使用者互動Canvas動畫
- JS於string 和 json互轉物件JSON物件
- WKWebView詳解&WKWebVieW和JS互動WebViewJS
- iOS中JS和OC相互呼叫實現混合開發(JavaScriptCore)iOSJSJavaScript
- swift3.0與OC的互動注意事項Swift
- OC與C++ 混編的檔案互動C++
- ios/oc中的結構體 與字串互轉iOS結構體字串
- WKWebView與Js實戰(OC版)WebViewJS
- 每週一個 Python 模組 | jsonPythonJSON
- Android 原生和 JS 互動實踐AndroidJS
- Vue和Node.js互動之tokenVueNode.js
- WKWebView和WebView與JS的互動方式WebViewJS
- OC和Swift混編Swift
- OC的方法和 函式函式
- iOS下JS與OC互相呼叫(四)--JavaScriptCoreiOSJSJavaScript
- JS原生互動JS
- OC多型 - OC多型
- WPF和js互動 呼叫窗體中的方法JS
- swift專案呼叫OC庫 和OC專案 在swift檔案裡面全域性呼叫OC庫Swift
- OC和Swift混編經驗Swift
- iOS UMeng OC和Swift混編iOSSwift
- iOS下JS與原生OC互相呼叫(總結)iOSJS
- iOS下JS與OC互相呼叫(三)--MessageHandleriOSJS
- js和原生應用常用的資料互動方式JS
- Protobuf簡單應用-JSON和Proto Buffer互轉JSON
- js 與WKWebView 互動JSWebView