UI-öğeleri kullanarak doğal olarak yapmak yerine, dinamik içeriği görüntülemek için UIWebView kullanmaya gittim. Yerel uygulama işlevlerini, UIWebView içindeki bağlantılara vurmaktan tetiklemek mümkün mü? Örnek: daha sonra mevcut Görünümü değiştiren bir linke mi basıyorsunuz?Bir UIWebView uygulamasıyla etkileşim kurabilir (iletişim kurabilir)?
cevap
Evet, mümkün. HTML'nize, bir JS, iOS kodunda gibi
window.location = "request_for_action://anything/that/is/a/valid/url/can/go/here";
Sonra sahte düzeni ile bir URL yüklemek için Web görünümü için bir temsilci atamak yazabilir ve temsilci, sap
webView:shouldLoadWithRequest:navigationType
if([request.URL.scheme isEqualToString: @"request_for_action"])
{
// parse your custom URL to extract parameter, use URL parts or query string as you like
return NO; // return NO, so webView won't actually try to load this fake request
}
gibi bir şeyle
- kenara Hemen
bir iOS co izin başka bir yol yapabilirsiniz de tam olarak ben başarmak için gerekenler görünüyor
NSString* returnValue = [self.webView stringByEvaluatingJavaScriptFromString: "someJSFunction()"];
Evet! Kullanıcı bir bağlantıyı bastığında, bunu web görünümünün temsilcisinden duyarsınız ve istediğiniz şeyi yapabilirsiniz. Güçlü şeyler bu şekilde yapılabilir.
Web görünümünün temsilcisi webView:shouldStartLoadWithRequest:navigationType:
gönderilir. Ne olduğunu analiz edip, istediğin gibi cevap ver. Web görünümünün bağlantıyı takip etmesini engellemek için (tamamen yanlış olsa da), sadece NO döndürün.
Bu örnekte, TidBITS Haberler uygulamasından, Web sayfasında tamamen oluşturulmuş bir play:
şemasını kullanan bir bağlantım var. Ben delege ve oyundaki olduğunu tespit:
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)r
navigationType:(UIWebViewNavigationType)nt {
if ([r.URL.scheme isEqualToString: @"play"]) {
[self doPlay:nil];
return NO;
}
if (nt == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:r.URL];
return NO;
}
return YES;
}
UIWebViewDelegate
yöntemi webView:shouldStartLoadWithRequest:navigationType:
uygulayın.
Gezinme Gezinme Türü ve istek gerektiği gibi.
Temsilci ayarladı ve uiwebview temsilci yöntemlerini uyguladı. Ancak bazı uiwebview içeriğine tıkladığımda temsilci yöntemlerimden hiçbiri aranmıyor. Geri arama yok. Ne yapılmalı? – iPhoneDeveloper
@iPhoneDeveloper Kendi sorunuzu tüm ilgili detaylarla birlikte göndermelisiniz. – rmaddy
- 1. MVP android uygulamasında sunucular arasında iletişim kurabilir
- 2. Kişiye özel olmayan bir Google hesabına kişi ile iletişim kurabilir
- 3. Mac'te .NET framework'ü kurabilir misiniz?
- 4. Karma SSIS-J2EE sistemi mesajlaşma yoluyla nasıl iletişim kurabilir?
- 5. iOS uygulamaları MFi aksesuarlarıyla WiFi üzerinden iletişim kurabilir mi?
- 6. Farklı bir sınıftan bir döngü tarafından oluşturulan bir düğme ile etkileşim kurabilir miyim?
- 7. NA'larla veri arasında ilişki kurabilir miyim?
- 8. Geçerli rota adını kullanarak bir bağlantı kurabilir miyim?
- 9. Çoklu giriş için html cinsinden giriş türü dosyasında dosya iletişim kurabilir miyim?
- 10. Joomla paketinde bileşen ve eklentiyi tek uzantılı kurabilir miyim?
- 11. Xcode 7.1'deki yeni projeler için varsayılan simülatörü kurabilir miyim?
- 12. Yüklendiğinde yerine tıklandığında yüklenecek safari uzantımı kurabilir miyim?
- 13. Bower veya NPM olmadan Angular Material kütüphanesini kurabilir miyim?
- 14. Eclipse Mars'ta BIRT kaynağını nasıl kurabilir ve çalıştırabilirsiniz?
- 15. iOS 5'in Hatırlatıcılar uygulamasıyla uygulamasından etkileşim kurabilirmiyim?
- 16. Hazırlama zamanında beklentilerle (doğrulama) bir Mockito alay kurabilir miyim? beklenen bir yöntem Mockito çalıştırmak olduğunu doğrulama
- 17. MAC OS X 10.8.x'te bir AppStore uygulaması bir çekirdek uzantısı nasıl kurabilir?
- 18. HTTP Yanıt Kodunu & Bir ASMX JSON Hizmetinde Özel Durum Atma Kurabilir miyim?
- 19. ASP.Net 4.0 ASP.Net 2.0 kullanan bir alt sitenin/kök dizininin Sanal Dizini olarak kurabilir mi?
- 20. iPhone simulator - simülatörde uygulamanın ne zaman çalıştığını nasıl algılar (test verilerini kurabilir)?
- 21. Android'de 2 iletişim parçası yaşam döngüsü ile nasıl etkileşim kurabilirim?
- 22. Bir UIWebView
- 23. Bir UIWebView
- 24. Android Uygulamasında Android Uygulamasıyla Google Datastore ile iletişim kurulamıyor
- 25. Köşeli 2 Bileşen Bir hizmet aracılığıyla Etkileşim
- 26. UIWebview
- 27. UIwebview
- 28. UIWebView
- 29. UIWebView
- 30. UIWebView
kullanarak ederek html bazı JS kodlarını çağırmak. Ama bu yöntemi nereye koyacağımı anlayamıyorum? Açıklayıcı cevap için teşekkürler, bu arada! –
UIWebView'un temsilcisinin bulunduğu yere koyun! – matt
Alwesome, bu işe yarıyor! :) Bir soru daha: Önceden tanımlanmış URL-şema ile bağlantıyı tıklattığımda, uygulama Safari'ye yönlendiriyor ve onu açmaya çalışıyor? –