JS與Native的調(diào)用

方法有好幾種,現(xiàn)在知道的話蝌蹂,是三種比較好

一味混、url截取的方式

  • OC調(diào)用JS
    與h5端協(xié)商好協(xié)議挫以,在- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType方法中接入request的url眼姐,來進(jìn)行判斷,調(diào)用native的方法佩番。
  • JS調(diào)用OC
   NSString *jsStr = [NSString stringWithFormat:@"showAlert('%@')",@"這里是JS中alert彈出的message"];
    [self.webView stringByEvaluatingJavaScriptFromString:jsStr];

二众旗、使用庫JavaScriptCore

在iOS 7之后,apple添加了一個(gè)新的庫JavaScriptCore趟畏,用來做JS交互贡歧,因此JS與原生OC交互也變得簡單了許多。
首先導(dǎo)入JavaScriptCore庫, 然后在OC中獲取JS的上下文

  • JS調(diào)用OC
- (void)webViewDidFinishLoad:(UIWebView *)webView {
    //JS調(diào)用OC的方法
    JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    context [@"onClickOC"] = ^(NSString *string) {
        NSLog(@"onClickOC == %@",string);
        dispatch_async(dispatch_get_main_queue(), ^{
        //在block中赋秀,要回到主線程刷新界面
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"方式二" message:@"這是OC原生的彈出窗" delegate:self cancelButtonTitle:@"收到" otherButtonTitles:nil];
            [alertView show];
        });
    };
}
  • OC調(diào)用JS
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    //OC調(diào)用JS的方法
    JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    //準(zhǔn)備執(zhí)行的js代碼 test js OC 是傳給js的參數(shù)利朵,(字符串是單引號)
    NSString *alertJS = @"showAlert('OC調(diào)用JS的方法')";
    //通過oc方法調(diào)用js的alert
    [context evaluateScript:alertJS];
}

以上參考文章:
http://www.reibang.com/p/d19689e0ed83

三、WKWebView

參考文章:
http://www.reibang.com/p/e09305d90fba
http://www.reibang.com/p/99c3af6894f4

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猎莲,一起剝皮案震驚了整個(gè)濱河市绍弟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌著洼,老刑警劉巖樟遣,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異郭脂,居然都是意外死亡年碘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門展鸡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屿衅,“玉大人,你說我怎么就攤上這事莹弊〉泳茫” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵忍弛,是天一觀的道長响迂。 經(jīng)常有香客問我,道長细疚,這世上最難降的妖魔是什么蔗彤? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮疯兼,結(jié)果婚禮上然遏,老公的妹妹穿的比我還像新娘。我一直安慰自己吧彪,他們只是感情好待侵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著姨裸,像睡著了一般秧倾。 火紅的嫁衣襯著肌膚如雪怨酝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天那先,我揣著相機(jī)與錄音农猬,去河邊找鬼。 笑死胃榕,一個(gè)胖子當(dāng)著我的面吹牛盛险,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播勋又,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼换帜!你這毒婦竟也來了楔壤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤惯驼,失蹤者是張志新(化名)和其女友劉穎蹲嚣,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祟牲,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡隙畜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了说贝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片议惰。...
    茶點(diǎn)故事閱讀 39,711評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖乡恕,靈堂內(nèi)的尸體忽然破棺而出言询,到底是詐尸還是另有隱情,我是刑警寧澤傲宜,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布运杭,位于F島的核電站,受9級特大地震影響函卒,放射性物質(zhì)發(fā)生泄漏辆憔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一报嵌、第九天 我趴在偏房一處隱蔽的房頂上張望虱咧。 院中可真熱鬧,春花似錦沪蓬、人聲如沸彤钟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逸雹。三九已至营搅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間梆砸,已是汗流浹背转质。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帖世,地道東北人休蟹。 一個(gè)月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像日矫,于是被迫代替她去往敵國和親赂弓。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 前言 Web 頁面中的 JS 與 iOS Native 如何交互是每個(gè) iOS 猿必須掌握的技能哪轿。而說到 Nati...
    幽城88閱讀 2,204評論 1 8
  • 前言### 最近公司項(xiàng)目進(jìn)行比較激烈盈魁,沒有時(shí)間寫demo,但是時(shí)間就像是海綿里的水窃诉,擠擠總是會有的杨耙。在公司的項(xiàng)目中...
    摸著石頭過河_崖邊樹閱讀 2,288評論 2 14
  • 一宣脉、簡介 近兩年隨著HTML5的迅速發(fā)展與日趨成熟车柠,越來越多的移動(dòng)開發(fā)者選擇使用HTML5來進(jìn)行混合開發(fā),不僅節(jié)約...
    RainyGY閱讀 1,870評論 1 12
  • 隨著H5技術(shù)的興起脖旱,在iOS開發(fā)過程中堪遂,難免會遇到原生應(yīng)用需要和H5頁面交互的問題。其中會涉及方法調(diào)用及參數(shù)傳值等...
    Chris_js閱讀 3,068評論 1 8
  • 一萌庆、簡介 近兩年隨著HTML5的迅速發(fā)展與日趨成熟溶褪,越來越多的移動(dòng)開發(fā)者選擇使用HTML5來進(jìn)行混合開發(fā),不...
    寶寶teacher閱讀 2,305評論 3 15