2010-06-20 39 views

回答

0

如果您使用UIWebView來託管您的html + javascript,您可以使用

 stringByEvaluatingJavaScriptFromString:
方法來評估JavaScript片段(並從中調用您的JS函數)。
從javascript中調用ObjC代碼會很複雜:因爲我知道你只能從ObjC調用JS代碼,但不能反過來。
您可以定期從ObjC調用某個JS函數,並使用返回的字符串來選擇一些在ObjC中執行的操作。
我覺得有點ha,,但我沒有別的想法。

0

使用phonegap。

phonegap的主要目標是允許js應用程序在iPhone設備上運行。

它本質上使用stringByEvaluatingJavaScriptFromString:如上所述,但具有很酷的東西,允許phonegap js類調用本地obj-c庫的整個庫。這意味着這些特定的js函數以obj-c的速度運行。手機音頻對象就是一個很好的例子。

然而,它有一些不錯的功能,可以多走一步。你可以使用插件創建自己的自定義obj-c函數,並從js中調用這些函數。

您也可以致電與OBJ-C JS: [webView的stringByEvaluatingJavaScriptFromString: '警報(' 你好,'];

注Webview是一個句柄的PhoneGap的UIWebView

您會自動獲取。在PhoneGap的插件在這個手柄和PhoneGap的應用程序委託。

但是不知道如何將它從非PhoneGap的類如OpenFeint的調用。

這就是我現在要問。

0

你可以利用UIWebView的shouldStartLoadWithRequest:委託方法。

在您想要調用本地方法的位置,準備一個僞造的URL,如fake://abc?par1=val1&par2=val2,並使用假請求加載網絡視圖。
上面提到的委託方法會捕獲請求,並且您可以在協議的基礎上處理請求。如果它是假的,那麼做任何你想要的,並從委託方法返回NO,否則返回YES來正常加載請求。

相關問題