2011-09-13 60 views

回答

2

您可以在網頁瀏覽器中使用jQuery Mobile,或者使用跨平臺SDK,例如PhoneGap,它將爲您創建網頁瀏覽。

+0

謝謝。我想要更多的解釋。主要步驟。 – cyberworld

0

是的,你可以。你可以使用JQuery Mobile。在開始之前,考慮一下你的應用程序和你的應用程序架構,以及你想要完成什麼。如果您想創建一個以HTML,JQuery/Javascript和CSS編寫的「Web應用程序」,它將在iPhone Safari瀏覽器中呈現,您可以將Web應用程序「包裝」到可以下載的「本地」iPhone應用程序中並從App Store安裝到iPhone中。仔細閱讀移動設備(iPhone)中的JQuery Mobile documentation並查看可能的選項。我建議從「Pages & Dialogs/Anatomy of page」開始,在文檔中啓動「Web應用程序」。您可以使用PhoneGap創建將提交給Apple的Objective-C,XCode應用程序。您可以開始使用Safari Development here

2

如果你想一個UIWebView中的遠程URL使用jQuery你可以使用stringByEvaluatingJavaScriptFromString

這裏有兩種方法可以這樣做,把它注射,我選擇了第二:

1.裝載的jQuery遠離googleapis.com

注:andJS:參數可以是香草JS備份,以防jQuery的不加載:

- (void)injectJQuery:(NSString *)jQuery andJS:(NSString *)js { 
    // Load jQuery from googleapis.com 
    NSString *jsString = @"function loadJQuery(e){try{if(typeof jQuery=='undefined'||typeof jQuery.ui=='undefined'){var t=10;var n=0;var r=document.getElementsByTagName('head')[0];var i=document.createElement('script');i.type='text/javascript';i.src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';r.appendChild(i);checkjQueryLoaded=setInterval(function(){if(t<n){window.clearInterval(checkjQueryLoaded)}n++},300);n=0;checkLoaded=setInterval(function(){if(typeof jQuery!='undefined'){window.clearInterval(checkLoaded);e(true)}else if(t<n){window.clearInterval(checkLoaded);e(false)}n++},500)}}catch(s){e(false)}}loadJQuery(function(e){if(e){__JQUERY__}else{__JS__}})"; 
    jsString = [jsString stringByReplacingOccurrencesOfString:@"__JQUERY__" withString:jQuery]; 
    jsString = [jsString stringByReplacingOccurrencesOfString:@"__JS__" withString:js]; 
    [self.webView stringByEvaluatingJavaScriptFromString:jsString]; 
} 

這樣做的唯一缺點是,在從Google加載jQuery之前需要一秒。這不是我的情況可以接受的,所以我用這個來代替:本地

2.加載jQuery的從mainBundle(更好的解決方案,我認爲)

創建一個新的文件名爲jquery.js;粘貼jQuery的內容;確保它被添加到複製包資源構建階段;然後...

- (void)injectJQuery:(NSString *)jQuery { 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"jquery" ofType:@"js"]; 
    NSString *jsString = [NSString stringWithContentsOfFile:path 
                encoding:NSUTF8StringEncoding 
                error:NULL]; 
    jsString = [jsString stringByAppendingString:jQuery]; 
    [self.webView stringByEvaluatingJavaScriptFromString:jsString]; 
} 
相關問題