iOS與JS互動詳解
這次帶給大家iOS與JS互動的三個需要注意點的點,iOS與JS互動的注意事項有哪些,下面給大家舉三個經典案列,我們一起來看一下。
1使用CocoaPods匯入WebViewJavascriptBridge
#這裡我們使用最新版本
pod 'WebViewJavascriptBridge', '~> 5.0.5'
導入工程的shell指令這裡我就不多說了。
2. 寫OC程式碼(先寫oc程式碼還是Js程式碼都可)
引入頭檔#import "WebViewJavascriptBridge.h"
建立兩個屬性
@property (nonatomic, strong) UIWebView * webView;@property WebViewJavascriptBridge* bridge; 初始化WebView和WebViewJavascriptBridge self.webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:self.webView]; /**开启日志*/ [WebViewJavascriptBridge enableLogging]; /**初始化-WebViewJavascriptBridge*/ self.bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView]; [self.bridge setWebViewDelegate:self];
3. JS呼叫OC程式碼
NOTICE:我們在寫這裡的呼叫程式碼之前,我們一定要知道前端js函數裡一定要知道函數名稱。這個很重要。
這裡我們假設前端有個函數名稱是callViewLoad他要呼叫OC的程式碼給回傳來的資料最列表處理。
看看OC的程式碼如何處理Js發送的請求
[self.bridge registerHandler:@"callViewLoad" handler:^(id data, WVJBResponseCallback responseCallback) { NSLog(@"前端發送的資料%@", data); if (responseCallback) { // respons給前端的資料
responseCallback(@{@"UName": @"洲洲哥的技術部落格",@"URLS":@ "http://www.jianshu.com/users/1338683b18e0/latest_articles"});
}
}];
#說這裡的參數說明
handler的回呼中有data、responseCallback兩個參數
這其中的data是前端js函數傳送給後端的資料:例如在登陸的時候,就要把帳號資訊和使用者密碼傳入後端,給後端處理。這裡的data就是存放著兩個資料的
responseCallback是我們要給前端js函數回傳的資料內容,前端給我們傳入了使用者名稱和密碼,我們呼叫介面之後又回傳登陸結果給前端就是要用他了。但是以字典形式返回。
到這裡我們的JS呼叫OC,oc端的程式碼已經說完了。
前端JS程式碼的寫法
html的程式碼寫法
<html> <head> <title>OC和JS互动Web</title> <script> /*这段代码是固定的,必须要放到js中*/ function setupWebViewJavascriptBridge(callback) { if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); } if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); } window.WVJBCallbacks = [callback]; var WVJBIframe = document.createElement('iframe'); WVJBIframe.style.display = 'none'; WVJBIframe.src = 'wvjbscheme://BRIDGE_LOADED'; document.documentElement.appendChild(WVJBIframe); setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0) } /**与OC交互的所有JS方法都要放在此处注册,才能调用通过JS调用OC或者让OC调用这里的JS*/ setupWebViewJavascriptBridge(function(bridge) { /**OC调用JS代码不含参数*/ bridge.registerHandler('UserLogin', function() { alert('UserLogin') }) /**OC调用JS代码含参数*/ bridge.registerHandler('UserLoginInfo', function(data, responseCallback) { responseCallback({'userId': '123456', 'Names': 'ZHOUZHOUGEDEBOKE'}) }) // **********************************JS调用OC bridge.callHandler('callViewLoad', {'blogURL': 'http://www.henishuo.com'}, function(responseCallback){ alert(responseCallback.UName) }) }) </script> </head> <body> <button style = "background: yellow; height: 50px; width: 100px;">JS/OC互动</button> </body> </html>
我們這裡主要看html程式碼中的callViewLoad函數。這個就是他呼叫oc函數證明。這裡的callHandler的里的參數可以看看
第一個參數callViewLoad :函數名稱
{'blogURL': 'http://www.henishuo.com'}:表示給OC程式碼傳入的資料
function(responseCallback) : 接受成功返回的JS函數這裡可以在後端成功返回之後在這裡我們可以監聽到。和OC的Block類似。
這個函數的說明:JS給ObjC提供公開的API,ObjC端透過註冊,就可以在JS端呼叫此API時,得到回呼。 ObjC端可以在處理完成後,回饋給JS,這樣寫就是在載入頁面完成時就先呼叫。
NOTICE:這裡只說了JS呼叫OC程式碼的宣告。間間單單的介紹了一個方法的使用。但是我們也看到了再寫前端JS函數的時候,有那麼一大塊程式碼是必須要寫的。不然是不會產生聯合效果的。
相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
相關閱讀:
#以上是iOS與JS互動詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Windows作業系統是全球最受歡迎的作業系統之一,其新版本Win11備受矚目。在Win11系統中,管理員權限的取得是一個重要的操作,管理員權限可以讓使用者對系統進行更多的操作和設定。本文將詳細介紹在Win11系統中如何取得管理員權限,以及如何有效地管理權限。在Win11系統中,管理員權限分為本機管理員和網域管理員兩種。本機管理員是指具有對本機電腦的完全管理權限

OracleSQL中的除法運算詳解在OracleSQL中,除法運算是一種常見且重要的數學運算運算,用來計算兩個數相除的結果。除法在資料庫查詢中經常用到,因此了解OracleSQL中的除法運算及其用法是資料庫開發人員必備的技能之一。本文將詳細討論OracleSQL中除法運算的相關知識,並提供具體的程式碼範例供讀者參考。一、OracleSQL中的除法運算

PHP中的模運算子(%)是用來取得兩個數值相除的餘數的。在本文中,我們將詳細討論模運算子的作用及用法,並提供具體的程式碼範例來幫助讀者更好地理解。 1.模運算子的作用在數學中,當我們將一個整數除以另一個整數時,就會得到一個商和一個餘數。例如,當我們將10除以3時,商數為3,餘數為1。模運算子就是用來取得這個餘數的。 2.模運算子的用法在PHP中,使用%符號來表示模

Linux系統呼叫system()函數詳解系統呼叫是Linux作業系統中非常重要的一部分,它提供了一種與系統核心互動的方式。其中,system()函數是常用的系統呼叫函數之一。本文將詳細介紹system()函數的使用方法,並提供對應的程式碼範例。系統呼叫的基本概念系統呼叫是使用者程式與作業系統核心互動的一種方式。使用者程式透過呼叫系統呼叫函數來請求作業系統

Linux的curl命令詳解摘要:curl是一種強大的命令列工具,用於與伺服器進行資料通訊。本文將介紹curl指令的基本用法,並提供實際的程式碼範例,幫助讀者更好地理解和應用該指令。一、curl是什麼? curl是命令列工具,用於發送和接收各種網路請求。它支援多種協議,如HTTP、FTP、TELNET等,並提供了豐富的功能,如檔案上傳、檔案下載、資料傳輸、代

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

C語言作為一門廣泛應用在軟體開發領域的程式語言,是許多程式設計師初學者的首選。學習C語言不僅可以幫助我們建立程式設計的基礎知識,還可以提升我們解決問題和思考的能力。本文將詳細介紹一條C語言學習的路線圖,幫助初學者更好地規劃自己的學習進度。 1.學習基本文法在開始學習C語言之前,我們首先需要先了解C語言的基本文法規則。這包括變數和資料類型、運算子、控制語句(如if語句、

Promise.resolve()詳解,需要具體程式碼範例Promise是JavaScript中一種用來處理非同步操作的機制。在實際開發中,常常需要處理一些需要依序執行的非同步任務,而Promise.resolve()方法就是用來傳回一個已經Fulfilled狀態的Promise物件。 Promise.resolve()是Promise類別的靜態方法,它接受一個
