2011-09-13 8 views

Odpowiedz

2

Możesz użyć numeru jQuery Mobile w przeglądarkach internetowych lub międzyplatformowego pakietu SDK, takiego jak PhoneGap, który utworzy dla Ciebie wyświetlenia stron internetowych.

+0

Dzięki. Chcę więcej wyjaśnień. Główne kroki. – cyberworld

0

Tak, możesz. Możesz użyć JQuery Mobile. Rozważ swoją aplikację i architekturę aplikacji oraz to, co próbujesz osiągnąć, zanim zaczniesz. Jeśli chcesz utworzyć "aplikację internetową", napisaną w HTML, JQuery/Javascript i CSS, która będzie renderowana wewnątrz przeglądarki iPhone Safari, możesz "owinąć" swoją aplikację internetową w "natywną" aplikację iPhone'a, którą można pobrać i zainstalowane na iPhone'a ze sklepu App Store. Sprawdź urządzenie JQuery Mobile documentation na urządzeniu mobilnym (iPhone) i zobacz, jakie opcje są dostępne. Polecam zacząć od "Strony & Dialogi/Anatomia strony" w dokumencie, aby rozpocząć "aplikację internetową". Możesz użyć PhoneGap, aby utworzyć aplikację Objective-C, XCode, która zostanie przesłana do firmy Apple. Możesz rozpocząć pracę z programem Safari Development here.

2

Jeśli chcesz użyć jQuery na zdalnym URL w UIWebView można wstrzyknąć go za pomocą stringByEvaluatingJavaScriptFromString

Oto dwa sposoby robi, że zdecydowałem się na drugim: jQuery

1. Załaduj zdalnie z googleapis.com

Uwaga: parametr andJS: może być backup wanilia JS w przypadku jQuery nie ładuje:

- (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]; 
} 

Jedyną wadą jest to, że trwa to sekundę, zanim jQuery zostanie załadowany z Google. To było nie do zaakceptowania dla mojej sytuacji więc użyłem zamiast tego:

2. Załaduj jQuery lokalnie z mainBundle (lepsze rozwiązanie myślę)

utworzyć nowy plik o nazwie jquery.js; wklej do niego zawartość jQuery; upewnij się, że został dodany do Skopiuj zasoby zestawu w Fazy kompilacji; następnie ...

- (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]; 
} 
Powiązane problemy