我在我的應用程序中使用WebView,並且它正在加載的頁面有一些現有的在Windows環境中使用的javascript函數調用,現在應該用在mac應用程序中。我的問題是,目前的JavaScript(從Windows應用程序移植在下列作品)函數調用目標C是這樣的:webScriptNameForSelector和帶下劃線的javascript方法
function callObjectiveC
{
window.external.MY_ObjectiveCFunction();
}
我一直在嘗試使用:
+ (NSString *)webScriptNameForSelector:(SEL)sel
{
if (sel == @selector(MyObjectiveCFunction))
{
return @"My_ObjectiveCFunction";
}
}
基於:https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/WebKit/Protocols/WebScripting_Protocol/Reference/Reference.html但無濟於事。有沒有辦法做到這一點?我可以調用客觀的C方法,無論我想要什麼,只需要能夠將其映射到現有的javascript中即可。
謝謝, c。
最近,我來到了同樣的問題,與同類解決方案解決了它是一個好主意。但根據文檔,'invokeUndefinedMethodFromWebScript:withArguments:'的返回值被定義爲'返回值 調用未定義方法的結果。因此,我應該直接調用相應的方法還是返回一個選擇器? – 2013-05-09 09:11:05