iOS

2012-04-23 34 views
5

'da Cordova 1.6 ile harici bir başlangıç ​​sayfası ayarlamak, yerel dizin yerine harici bir index.html (cordova.js ile birlikte) yüklemek mümkün mü?iOS

self.viewController.wwwFolderName = @"www"; 
self.viewController.startPage = @"index.html"; 

i harici url ama şans olmadan ... Herkes bunun için bir çözüm biliyor başvurmak için çalıştı:

i appdelegate.m Bu kodu bulundu?

p.s. android ile

çok kolay: Ben is yaptım

super.loadUrl("http://192.168.1.135:3000/"); 

cevap

4

Projemde (AppDelegate.m) için yaptım bunu.

Güzel çalışıyor. Dış sitem yerel IIS'de ve cordova.js'nin yanı sıra birkaç eklentiye sahip. Şimdi sadece benim app onaylamak için Apple alıp almadığımı görmek zorunda! iOS için

+0

Ben de denemek, benim app başında harici bir url sahip olmak için çalışıyorum. Örneğin push bildirimleri için eklentileri nasıl yükleyeceğime emin değildim. bu yüzden onları harici olarak URL'ye yüklemiş olmalıyım? –

1

basit yolu, bir index.html dosyasına komut bloğunu takip ve gerekli değilse başka kod kaldırmak şunlardır:

<script type="text/javascript"> 
    window.location.href="http://192.168.1.135:3000/"; 
</script> 

Ve içermektedir Ayrıca OpenAllWhitelistURLsInWebView kontrol PhoneGap.plist dosyada ExternalHosts haritası konak plist dosyasında YES olarak ayarlanır

+0

Teşekkürler, çalışıyor! ama android üzerinde yapılma şekli değil. daha iyi bir yolu var mı – marcus3006

+0

tam sebebini bilmeme rağmen, ancak telefon kapsayıcısı, gerekli konteyneri oluşturmak için yerel denetimleri kullanır; bu durumda, Android bunu destekliyor olabilir ancak iOS konteyneri olmayabilir. Ayrıca android durumunda dikkatli bakarsanız, yerel kaynağı yüklemek için mutlak url veririz, iOS'ta ise klasör adını ve dosya adını ayrı olarak belirleriz. – dhaval

+0

evet, haklısınız. Emin değilim, ama ben phonegap 1.4 ile mümkün olduğunu düşünüyorum. şimdi bir klasör ve dosya belirtmek zorundasınız-.- – marcus3006

2

include the PhoneGap source as a subproject (1,7 ve yönergelerini kullanıyorum, sonunda notu kullandım), PhoneGap'in harici URL'leri startPage olarak desteklemesine izin vermek için birkaç satırlık kod ekleyebilirsiniz. 133 satırında civarında

, sen

if([self.startPage hasPrefix:@"http"]) { 
    appURL = [NSURL URLWithString:self.startPage]; 
} 
else 

sağ Varsayılan olarak

if (startFilePath == nil) { önce PhoneGap olmadan dış baslangicsayfasi URL'leri desteklemek için görünmüyor eklemek isteyeceksiniz bir javascript yukarıda belirtilen 'hack'. Bunun dışında (ve) başka yolu bilmiyorum!

Başka sorularınız olursa bize bildirin.

Not: Yukarıda belirttiğim gibi, izlenecek yol bir adım eksik. Yazının yazarına bildirmesini istedim, ancak henüz onaylanmadı. $ (CORDOVALIB) ekleyerek benim için oldu kayıp/Yapı Aşamaları altında Başlık Arama Yolu Sınıflar (aynı zamanda yinelemeli aramak için işaretleme) oldu

Bir adım: Aşağıda benim yorumdur. Bunun dışında harika bir mektup yaz! Başka yerde belirtildiği, erişim çalıştığınız site Beyaz listeye eklenecek sahip olduğundan

self.viewController = [[[MainViewController alloc] init] autorelease]; 
self.viewController.useSplashScreen = YES; // YES; 
self.viewController.wwwFolderName = @""; // @"www"; 
self.viewController.startPage = @""; // @"index.html"; 
self.viewController.invokeString = invokeString; 
self.viewController.view.frame = viewBounds; 

// Load request with new root URL 
NSURL *urlOverwrite = [NSURL URLWithString:@"http://kyryll.com"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:urlOverwrite]; 

[self.viewController.webView loadRequest:request]; 

:

2

olurdu: StartPage Ayrıca URL olduğundan

self.viewController.wwwFolderName = @""; // @"www" 
self.viewController.startPage = @"http://192.168.2.107:9000/"; 

isimleri kafa karıştırıcıdır.

+0

Kodunuzu yeniden biçimlendirdim, ancak gelecekte bunu doğru şekilde yapmaya çalışıyorum. – simonmorley

+0

teşekkürler, bu benim ilk yorumum oldu stackoverflow :-) –

+0

Ben bunu seviyorum. Kabul edilen cevaptan daha özlüdür. – louielouie

0

wwwFolderName öğesini boş dizeye ayarlamak benim için çalışmadı, ancak işe yaramadı.

self.viewController.wwwFolderName = nil; 
self.viewController.startPage = @"http://192.168.2.107:9000/"; 
0

Ben is yaptım basit yolu, xxxViewController: CDVViewController < ...>

-(void) viewDidLoad{ 
    self.wwwFolderName = @"dist"; 
    self.startPage = @"test.html"; 
    [super viewDidLoad]; 
} 

yüzden, hepsi bu.