2014年7月28日 星期一

UIWebview 的javascript與ios objective-c互動傳參數(Ⅱ)

繼4個月前的一篇【UIWebview 的javascript與ios objective-c互動傳參數

有人問到要如何從objective-c呼叫網頁的function並回傳值

以下為沒有傳參數的方法,

傳參數給網頁的function請看

UIWebview 的javascript與ios objective-c互動傳參數】 此篇


若要從objective-c去呼叫網頁javascript並回傳值的話

有兩種作法

一種就是再用function去呼叫丟objective-c內的的function

此方法較複雜也較麻煩  此方法可用前篇 在網頁呼叫callObjFunction的function

這是其中一種作法。

另種作法就最單純簡單 

就直接在javascript使用return 就可以傳回到objective-c內

例:

webview的程式碼:


<!DOCTYPE html>
<html>
    <head>
        <script>
            
        function callObjFunction()
        {
        
         return "I will return from js web";   
        }
       </script>
    </head>

    <body>
        
    </body>
</html>

Objective-c程式關鍵部份:



 NSString *str = [_theWebview stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat:@"callObjFunction()"]];
    NSLog(@"str:%@", str);


這樣就可以看見log有I will return from js web的字樣

發文附圖:


範例程式: GitHub



沒有留言: