iOS webView js和Objective c互動
常見問題, 使用webView時, 常常需要呼叫Objective c的方法。
兩種方式可以完成需求, 簡單記錄方便日後常看。
第一種是網頁js呼叫方法loadURL();
例如:
網頁端:
loadURL("myWebView://callfunc?param1=1¶m2=2.......");
iOS端:webView代理
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *url = [[request URL].absoluteString stringByRemovingPercentEncoding]; NSLog(@"%@", url); if ([url hasPrefix:@"myWebView:"]) { //呼叫網頁,彈出視窗 [webView stringByEvaluatingJavaScriptFromString:@"alert(1);"]; } return YES; }
第二種方法
在iOS程式碼處獲取javaScriptContext, 得到上下文。 具體程式碼: iOS端:webView代理- (void)webViewDidFinishLoad:(UIWebView *)webView { JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; context[@"test1"] = ^ NSString *() { NSArray *args = [JSContext currentArguments]; for (id obj in args) { NSLog(@"%@",obj); } return @"123"; }; }
此處, 申明一個方法名為test1的方法。 網頁端, js直接呼叫普通方法一樣,直接呼叫即可。
相關推薦
iOS webView js和Objective c互動
常見問題, 使用webView時, 常常需要呼叫Objective c的方法。 兩種方式可以完成需求, 簡單記錄方便日後常看。 第一種是網頁js呼叫方法loadURL(); 例如: 網頁端: load
iOS中js與objective-c的互動
因為在iOS中沒有WebKit.Framework這個庫的,所以也就沒有 windowScriptObject物件方法了。要是有這個的方法的話 就方便多了,(ps:MacOS中有貌似) 現在我們利用其他方法去達到js與objective-c的互動效果。 首先是obje
【iOS】WebView的使用、Javascript和Objective-C的互動
現在的App越來越有直接在一個View中擺個WebView,然後裡面鑲嵌個HTML5網頁,再加些和手機系統聯絡的方法的趨勢了。這樣做,以免IOS Apps一套,安卓那邊一套,HTML5的手機網頁版又一套。我都懶得煩了,一套HTML5程式碼吃遍天下,反正現在的HTML5網頁已
iOS開發核心語言Objective C —— 面向對象思維、setter和getter方法及點語法
才幹 各路 alt .net 行為 變量的作用域 fadein 格式 讀取 本分享是面向有意向從事iOS開發的夥伴們。或者已經從事了iOS的開發人員。假設您對iOS開發有極高的興趣,能夠與我一起探討iOS開發。一起學習,共同進步。假設您是零基礎,建議您先
iOS UI入門——使用Objective-C和Swift實現警告檢視和操作列表(UIAlertView,UIActionSheet,UIAlertController)
警告彈框和操作列表在開發中常用到,iOS9之後,UIAlertView和UIActionSheet都會報黃色的警告,但是還是依然可以使用的。在這裡主要介紹一在這三個控制元件在Objective-C和Swift下的使用程式碼。 Objective-C程式碼: #import "Vi
iOS入門如何選擇Swift和objective-c
學oc吧,學完估計也就淘汰了。學swift吧,短時間內普及機率太低,即便學完了,大部分老專案還是用oc.. 不學oc吧,放眼望去現在全是oc,swift完全沒有用武之地。 不學swift吧,說不上那
iOS UI入門——使用Objective-C和Swift含tableViewCell的UITableViewCell基類的實現
繼承是面嚮物件語言的一種特性,在開發中經常用到。基類的存在也大大的方便了開發,能減少很多重複的程式碼。 Objective-C程式碼: #import "BaseTableViewCell.h" @implementation BaseTableVie
iOS入門怎樣選擇Swift和objective-c
art 合作 項目開發 wwdc mil 應該 技術 新手 個人 版權聲明:本文為博主原創文章,未經博主同意不得轉載。博主微信:lofocus https://blog.csdn.net/
Swift和Objective-C混合編程——Swift調用OC
分享 發現 load 另一個 == 方法 代碼 swift 應用 在iOS應用的開發中。Swift必將代替OC,兩者的趨勢是“短期共存,長期代替”。但曾經有太多的代碼是用OC語言完畢的,而Swift的開發也從 OC中繼承了非常多的特性。兩者也是有非常多的類
Swift 4 和 Objective-C 混合編程(一) 快速起步
命名方式 import 編譯器 選擇性 工程 Swift 4 和 Objective-C 在同一個工程裏的混搭編程的方法你可以在 xcode 裏同時使用 Swift 和 Objective-C(以下簡稱OC)來寫代碼,混搭編程的好處很多,比如允許大量代碼的復用,在性能和開發效率之間找到平衡
iOS 編寫高質量Objective-C程式碼(六)
級別: ★★☆☆☆ 標籤:「iOS」「Block」「Objective-C」 作者: MrLiuQ 審校: QiShare團隊 前言: 這幾篇文章是小編在鑽研《Effective Objective-C 2.0》的知識產出,其中包含作者和小編的觀點,以及小編整理的一些demo。希望能幫助大家以簡潔
iOS 編寫高質量Objective-C程式碼(八)
級別: ★★☆☆☆ 標籤:「iOS」「Foundation」「Objective-C」 作者: MrLiuQ 審校: QiShare團隊 前言: 這幾篇文章是小編在鑽研《Effective Objective-C 2.0》的知識產出,其中包含作者和小編的觀點,以及小編整理的一些demo。希望能幫助
iOS 編寫高質量Objective-C程式碼(五)
前言: 這幾篇文章是小編在鑽研《Effective Objective-C 2.0》的知識產出,其中包含作者和小編的觀點,以及小編整理的一些demo。希望能幫助大家以簡潔的文字快速領悟原作者的精華。 在這裡,QiShare團隊向原作者Matt Galloway表達誠摯的敬
iOS開發應該選擇Objective-C還是Swift
iOS開發需要知道Objective-C 當Apple釋出了Swift之後,我聽見人們都說:“趕快,我現在可以成為一個不用學習Objective-C的iOS開發者了。”在這裡我有三個建議想給這些人們。 1.如果你想成為一個iOS開發者,你仍然需要學習Objective-
淺談Swift和Objective-C之間的那點事。。。
Swift 是一種新的程式語言,用於編寫 iOS 和 OS X 應用。Swift 結合了 C 和 Objective-C 的優點並且不受C相容性的限制。Swift 採用安全的程式設計模式並添加了很多新特性,這將使程式設計更簡單,更靈活,也更有趣。Swift 是基
製作 Swift 和 Objective-C Mixed 的 Pod
知識背景 What did CocoaPods do? In Xcode, with references directly from the ruby source, it: Creates or updates a workspace. Adds your proj
在 Windows 上安裝和使用 GNUstep 和 Objective-C
除了在 Mac 系統上使用 Objective-C,你還可以在 Windows 上下載並安裝 GNUstep 和 Objective-C 環境,接下來我們就介紹詳細的安裝和使用的步驟。 下載 GNUstep GNUstep 環境可通過 Windows 下的 MinGW
Swift開發指南:使用Swift與Cocoa和Objective-C(Swift 4)
與Objective-C API進行互動 互操作性是能夠在任何一個方向上與Swift和Objective-C進行介面,讓您訪問並使用以其他語言的檔案中的一些程式碼。當您開始將Swift整合到應用程式開發工作流程中時,瞭解如何利用互操作性來重新定義、改進和增
Swift和Objective-C的相同點和不同點
Swift和Objective-C的聯絡 Swift與Objective-C共用同一套執行時環境我們編寫程式,讓程式執行起來,被機器執行的程式碼並非全部是由我們自己來編寫的。需要同時執行很多預先寫好的支援性的程式碼,才能讓我們自己的程式碼執行起來。程式並非單
asp.net對cookie的操作(前臺js和後臺c#程式碼)
CSDN廣告是越來越多了,所有部落格筆記不再更新,新網址 DotNet筆記 (一) 後臺C#程式碼對cookie的操作: 看一下程式碼 ///////////////////////////////-----cookie建立\設定的操作--