SORU
27 ŞUBAT 2012, PAZARTESİ


iOS JavaScript Köprüsü

UİWebView ve yerel iOS HTML5 çerçevede birlikte kullanacağım bir uygulama üzerinde çalışıyorum. JavaScript arasında iletişim kurmak ... ve Objective-C var bu uygulama iletişimi kolaylaştıran herhangi bir kütüphaneler Var mı? Biliyorum orada birçok kütüphaneyi oluşturmak için yerli iOS uygulamaları HTML5 ve javascript (örneğin AppMobi, ™), ama emin değilim eğer orada bir kütüphane oluşturmak için yardımcı native iOS apps ile ağır JavaScript kullanımı. İhtiyacım var:

  1. Objective-C JS yöntemlerini yürütmek
  2. JS Nesnel-C yöntemleri yürütmek
  3. Objective-C (örneğin DOM hazır olay), yerel JS olayları dinleyin

CEVAP
27 ŞUBAT 2012, PAZARTESİ


Birkaç kütüphaneler var, ama onları denemek isteyebilirsiniz, bu büyük bir proje, bu herhangi bir el, bilmiyordum:

Ancak, bir şey kendinizi denemek olabilir yeterince basit olduğunu düşünüyorum. Ben şahsen yapmam gereken tam olarak ne zaman bunu yaptı. Ayrıca ihtiyaçlarınıza uygun basit bir kütüphane oluşturabilirsiniz.

1. Objective-C JS yöntemlerini yürütmek

Bu gerçekten tek bir kod satırı.

NSString *returnvalue = [webView stringByEvaluatingJavaScriptFromString:@"your javascript code string here"];

Resmi UIWebView Documentation Daha fazla bilgi.

2. JS Nesnel-C yöntemleri yürütmek

Bu ikisi arasında tam bir iletişim sağlar, Mac OS üzerinde bulunan aynı windowScriptObject özelliği (ve sınıf) yok çünkü ne yazık ki biraz daha karmaşıktır.

Ancak, kolayca özel URL, javascript diyebilirsiniz:

window.location = yourscheme://callfunction/parameter1/parameter2?parameter3=value

Ve Objective-C ile onu yakalamak

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
   NSURL *URL = [request URL]; 
   if ([[URL scheme] isEqualToString:@"yourscheme"]) {
       // parse the rest of the URL object and execute functions
   } 
}

Bu çalışıyor ama (ya da windowScriptObject kullanarak) olması gerektiği kadar temiz değil.

3. Objective-C (örneğin DOM hazır olay), yerel JS olayları dinleyin

Yukarıdaki açıklama, görmek istiyorsanız, size oluşturmak için bazı JavaScript kodu ekleyin olay izlemek istediğiniz ve aramak doğru window.location diyorsun sonra kesildi.

Yine, öyle olmalı, ama çalışıyor gibi temiz değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Harvest: Greg Laurie

    Harvest: Gre

    6 HAZİRAN 2006
  • Shon Gonzales

    Shon Gonzale

    5 EKİM 2014
  • Vicious Computers

    Vicious Comp

    14 EKİM 2006