oc與js的簡(jiǎn)單交互

1.用本地的html來測(cè)試,先寫一個(gè)html

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>oc與js交互</title>
    <script type="text/javascript" src="index.js"></script>
</head>
<body>
<button onclick="hello()">這是按鈕</button>
<button id="button" onclick="buttonFun('傳參') ">這是按鈕1</button>

</body>
</html>

index.js:

function hello() {
    alert("hello")
}

var param = "demo";
function buttonFun(param){
    alert(param)
}

在.m導(dǎo)入
#import <JavaScriptCore/JavaScriptCore.h>

加載本地的html

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSString * htmlPath = [[NSBundle mainBundle] pathForResource:@"index"
                                                      ofType:@"html"];
NSString * htmlCont = [NSString stringWithContentsOfFile:htmlPath
                                                encoding:NSUTF8StringEncoding
                                                   error:nil];
[self.webView loadHTMLString:htmlCont baseURL:baseURL];
self.webView.delegate = self;

3.交互
思路:
1.先和前端同事規(guī)定好函數(shù)名稱和傳參的類型
2.通過函數(shù)名,來進(jìn)行oc的代碼操作
3.oc代碼操作結(jié)束后,把結(jié)果傳給h5

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
//網(wǎng)頁加載完成調(diào)用此方法
//首先創(chuàng)建JSContext 對(duì)象(此處通過當(dāng)前webView的鍵獲取到j(luò)scontext)
JSContext *context=[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
//獲取函數(shù)名稱
context[@"hello"] = ^(){
    //進(jìn)行iOS這邊的邏輯操作 
    NSLog(@"_____get identify__________");
    //操作結(jié)束,把結(jié)果傳給h5 buttonFun為接受結(jié)果的函數(shù)名稱 
    NSString *smethods = [NSString stringWithFormat:@"%@('%@')", @"buttonFun", @"打印結(jié)束"];
    [webView stringByEvaluatingJavaScriptFromString:smethods];
};
}
CE23FC8B-E460-4873-9A0B-9FF1DD2956C8.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • H5的快速發(fā)展,使得現(xiàn)在各種APP中或多或少的嵌入了H5的頁面,那么原生頁面和H5的混合開發(fā)成了我們不得不熟悉的...
    RainyHand閱讀 2,651評(píng)論 4 13
  • 隨著H5技術(shù)的興起,在iOS開發(fā)過程中,難免會(huì)遇到原生應(yīng)用需要和H5頁面交互的問題。其中會(huì)涉及方法調(diào)用及參數(shù)傳值等...
    Chris_js閱讀 3,237評(píng)論 1 8
  • 一、說明 這篇文章記錄自己在研究OC與JS交互中的所得,以及遇到的問題與解決 由于蘋果的審核時(shí)間太漫長(zhǎng),一次審核不...
    xukunluren閱讀 910評(píng)論 1 7
  • 只有根扎的深,才會(huì)枝繁葉茂——而這需要很長(zhǎng)一段路,韜光養(yǎng)晦,默默無聞。燦爛繁華的背后,一定有寂寞孤獨(dú)的堅(jiān)持。 塑造...
    藍(lán)色的海sunshine閱讀 202評(píng)論 0 0
  • 今天分享點(diǎn)比較基礎(chǔ)的東西,別小看這基礎(chǔ)的東西,面試時(shí),一個(gè)小小的知識(shí)點(diǎn),有時(shí)能決定你是否被錄用。筆者兩年前就因?yàn)橐?..
    洪生鵬閱讀 3,852評(píng)論 2 17

友情鏈接更多精彩內(nèi)容