我希望能夠爲我的應用程序使用PhoneGap。我將不得不構建自定義協議/插件,以便可以從Javascript調用Native方法。我知道你可以在本地代碼返回時在Javascript中調用成功函數。你可以使用PhoneGap和iOS從本機代碼(不是在回調中)調用JavaScript函數嗎?
我需要做的就是從本地代碼中調用一個javascript函數。基本上,應用程序將通過本地網絡連接到OSX伴侶應用程序,當OSX應用程序將數據發送到iOS應用程序時,它將在Objective C方法中處理,我需要能夠將結果發送到PhoneGap/javascript並執行某些操作與它在WebView中。
這可能嗎?我只能找到有關從JavaScript調用native的信息,而不是其他方式。
感謝, 托馬斯
從答案使用下面的代碼在這裏:
MyPhoneGapPlugin.m
- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port {
NSLog(@"Connected To %@:%i.", host, port);
NSString* jsString = [NSString stringWithFormat:@"alert(connected to: %@);", host];
[theWebView stringByEvaluatingJavaScriptFromString:jsString];
[self readWithTag:2];
}
給我錯誤「未知的接收器 'theWebView' 你的意思是 '一個UIWebView' ?
UPDATE:找到了答案:使用PhoneGap的幫手,我可以寫這樣的事情...
[super writeJavascript:@"alert('connected');"];
請您詳細說明您的答案。我有同樣的問題,對科爾多瓦來說是新的。我從MainViewController和我的Phonegap插件中調用它,但它在webview中沒有響應。他們失去了什麼? – bhuwansahni
@bhuwansahni恐怕科爾多瓦可能改變了很多,因爲我這樣做,所以我不太確定現在需要什麼。我可以像從我的應用程序中的任何方法那樣調用它 - 可以參閱文檔中的這篇文章以獲取更多信息:http://docs.phonegap.com/en/2.0.0/guide_plugin-development_ios_index.md。 HTML – tsdexter