實例:iOS 中的 JS 交互 OC & Swift 雙語

DebraCKWH 8年前發布 | 7K 次閱讀 Swift iOS開發 移動開發 JavaScript

寫在前面

隨著 App 開發日趨成熟,不少設計模式和開發流程都被應用其中,也跟著日趨成熟。其中一條相信很多人都聽說過,不少項目也是這樣做的:

用 H5 頁面適配代替 Native App 原生開發語音開發的頁面

其實想一想不難理解為什么要這樣做?優勢有很多,應用場景也有很多。比方說一個非核心功能模塊,需求多變需要實時更新功能,此時如果用 Native App 原生開發語言開發就顯得有些不太適合,尤其是 iOS 方面自己寫出的代碼邏輯一時之間很難滿足比較大的需求變動或者考慮到以后所有的變化可能性就需要維護代碼,還要 Apple 審核方可更新 App Store 中的 App 版本,這時候用 Web 頁面內嵌 App 可用的系統瀏覽器顯示相關模塊的頁面給用戶就顯得靠譜許多。而且很多移動互聯網公司都是 Android 與 iOS 和 Web 風格幾乎統一的三管齊下模式,用 Web 內嵌入 App 顯示還省時省力,不僅輕松統一了 Android 和 iOS 客戶端相關頁面還幫兩方的小伙伴節省出時間精力去做好客戶端的核心功能。

Web 頁面與 Native App 交互

我們上面水了那么多話就是為了說明為啥要使用 Web 頁面內嵌 App。那么接下來就要說一下如果采用了 Web 頁面內嵌 App 的話需要解決的問題:

  • 需要適配手機,pad,頁面高仿 App 原生頁面。(這個我們不管,工作板上找到 H5 的同事們,把需求丟給他們就好了)

  • 有些 Web 頁面需要與 App 內部做交互,達到不僅看著像 App 原生界面,用起來還能跳轉到我們其他 App 原生界面做交互的境界

暫時就想到這么多,不過滿足了上面兩條,相信這個 Web 頁面內嵌對于用戶來說就很成功了。

情景模擬

模擬還是拿自己說事兒吧,這些天負責做產品的社區模塊(之前負責社區模塊的女同事產假 ing,所以這塊是大家分攤著做的),有個需求是社區中的帖子(圖文混排)需要加入點擊可以瀏覽大圖以及保存的功能。可是 H5 那邊的頁面圖片是沒有點擊事件的,這難不倒偉大的編碼勞動人民。查了一下資料早有前輩遇到此坑,簡單的介紹一下解決方法:就是利用 JS 嵌入 H5 頁面,在 JS 中為 H5 中的圖片綁定一個點擊事件,并給點擊事件寫特定的標識;之后在點擊事件觸發時獲取當前點擊的圖片 Url 進行瀏覽處理(瀏覽這塊我在這里不贅述了,主要是把相關的 JS 貼一下,簡單解讀一下)。

相關代碼

先貼一下 OC 的代碼,由于我們項目要兼顧 iOS 8.0 之前的 iOS 系統,所以我就先貼出 UIWebView 對應的代碼,(關于 WKWebView 的之后放出):

首先是加載請求

obj-C

#pragma mark - Foundations

 本文由用戶 DebraCKWH 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!