14

Tam ekran iPhone için optimize edilmiş bir web uygulaması yapıyorum. Yerel bir uygulama gibi ana sayfadan başlatılır ve aşağıdaki yönergeyle bağımsız bir uygulama gibi davranır, ancak sadece düz HTML/CSS/JavaScript, PhoneGap içermez.iPhone web uygulamalarında OAuth geri aramaları

<meta name="apple-mobile web-app-capable" content="yes" /> 

OAuth, Twitter yönlendirmeyi (veya başka bir OAuth sağlayıcı) üzerinden kimlik doğrulaması yapmaya benim tam ekran web uygulaması üzerinden ve Mobil Safari içine beni alır. Twitter auth tamamlandığında, uygulamamla ilgili yönlendirmeler ana sayfamın uygulamasını başlatmaz, bunun yerine Mobil Safari'de yeniden yönlendirir. IPhone ana sayfası web uygulamasında OAuth yapmak mümkün mü? Kısacası, ana sayfamın web uygulamasını yeniden başlatması için OAuth geri araması alabilir miyim?

+0

sadece bir uygulama programsal olarak yeniden başlatmanın bir yolu olmadığını söylemek istedim (belki de bir jailbroken cihaz üzerinde olabilir ama normal koşullar altında değil) – mattacular

+0

Sadece netleştirmek için. Bir web uygulaması oluşturduğunuz için, zaten Mobil Safari'de. Kimlik doğrulama sayfasının Safari'de yeni bir sayfada açıldığını mı söylemek istiyorsunuz? –

+2

Bir iPhone optimize web uygulamasını ana sayfaya kaydettiğinizde ve buradan çalıştırdığınızda, aslında Safari'de açılmaz. Eh, hala kapakların altında Safari tarafından render, ancak tek başına bir uygulama gibi başlattı. Hızlı uygulama değiştirme görev çubuğunda ve her şeyde kendi simgesi olur. Sorun, Twitter'a giden bir bağlantının bu konteynırdan ayrılmasıdır. – mustpax

cevap

14

Son zamanlarda benzer bir sorun yaşadım ve URL'yi Javascript'te window.location.href="http://example.com/whatever" ile ayarladıysanız iOS'un Safari'ye geçmediğini gördük. Bu yöntemi kullanarak safari'ye geçiş yapmadan PayPal uygulaması ve Facebook girişini bağımsız web uygulamalarında çalışmayı başardım! Bir form gönderiyorsanız, bunu da JS yoluyla yapın ve yanıttan URL'yi alın ve konumu ayarlayın. Daha sonra uygulamanıza geri dönersek, dış hizmetin nasıl çalıştığına bağlıdır.

Bu iyi değilse, Safari'ye geçiş yapmadan önce bir pop-up alert('You will be passed to Safari for authentication. Reload this app afterwards.') yapabilirdiniz. Harika değil, otomatik olarak uygulamaları değiştirerek onları şaşırtmaktan daha iyi!

+0

Google OAuth, belirli bir izin kapsamı (ör. Https://www.googleapis.com/auth/youtube) talep ederseniz ve giriş bilgilerinizle ilişkili birden fazla hesabınız varsa, "Bir hesap seç" ekranından Safari'ye geçme konusunda hala ısrarlıdır. – Dunc

İlgili konular