Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

Push Bildirim URL'yi uygulama içindeki WebView açtırmak istiyorum.

0 oy
503 kez görüntülendi
20, Haziran, 2016 ios development kategorisinde yusta tarafından soruldu

IOS da bir uygulamam şuana kadar düzgün olarak çalışmaktadır.


Push bildirimde mevcut normal ve url olarak gönderim yapabiliyorum. Ancak URL bildirim gönderdiğimde appdelegate.m de handle ediliyor sadece openURL ile açtırabiliyorum ama ben url gönderilen bildirimleri url dısardan değil uygulama içindeki webview de açtırmak istiyorum bunu nasıl saglayabilirim?

 

Şimdiden tşkler..

2 Cevaplar

0 oy
21, Haziran, 2016 huseyinvural tarafından cevaplandı

Sorunuzu tam analayamadım mı bilmiyorum. :)

Bir parametre olarak url yi gönderirisiniz, arıdan bildirim geldiğinde handele işleminin arından istediğiniz bir view controller'ı açarsınız ve bu controller içine eklediğiniz web view da parametre olarak gönderdiğiniz url i açarsınız.

bildirim geldiğinde, istediğiniz view controllera göndermek ile ilgilimi sorun yaşıyorsunuz.

21, Haziran, 2016 yusta tarafından yorumlandı
Evet bildirim geldiğinde bildirim içinde url de geliyor o url webviewde açtırmak istiyorum.
21, Haziran, 2016 yusta tarafından yorumlandı
[[UIApplication sharedApplication] openURL:request.URL];
 
bu alanı

  [webView loadRequest:[NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]]];

bu sekilde yaptıgımda hata alıyorum..

Hata :  Use of undeclared identifier 'webView'
21, Haziran, 2016 huseyinvural tarafından yorumlandı
şöyle objective-c kullanmadığım için genel izlemen mantık konsunda yardımcı olmaya çalışacağım.  

Bir çok yolu olabilir ama aşağıda açıkladığım yol bana basit geliyor.

1 - Appdelegete içinde, bildirim için gönderidğin objeyi yakalayıp, içinde işlem yapacağın url yi seçersin.

2- Bu işlemin yapıldığı blokta , Global bir static var oluşturusun bunun içine url ni yazarısn.

3- init viewcontrollerin açıldığında, içinde global olarak oluşturduğun değişkene ulaşırsın  atadığın url yi alıp web viewin içinde çalıştraiblirsin.
21, Haziran, 2016 yusta tarafından yorumlandı
işte bunu nasıl yapabilirim bu konuda destek istiyorum 2. adıma kadar geliyorum sıkıntı yok.
21, Haziran, 2016 yusta tarafından yorumlandı
3- adıma neler yapılacağına dair daha detaylı bilgi verebilir misiniz? Tşkler..
21, Haziran, 2016 huseyinvural tarafından yorumlandı
Objective-c kullnamdığım için ancak swift örneği verebilirim, ben swift kullanıyorum.

aşağıdaki  adımların yapıldığı bir  viewcontrolerız olursa url görüntülenir

http://swiftstub.com/360447692
22, Haziran, 2016 yusta tarafından yorumlandı
projeyi burda nasıl paylaşabilirim?

NSLog(@"url-->%@",request.URL);
[self.webView loadRequest:request.URL];

Yine açılmıyor webview içinde..

Push Bildirim Log kaydı aşağıaki gibi geliyor, parçalıyorum URL ayrı alıyorum ama webview içinde açtıramıyorum :(

016-06-22 17:26:07.561 APP[1733:871678] userInfo {
    aps =     {
        alert = "Test Baslik";
        e = "-#PRT#22-06-2016#PRT#http://www.mynet.com#PRT#Test Mesaj#PRT#Test Baslik#PRT#3#PRT#";
        sound = default;
    };
}


Request.URL NSLog kaydı aşağıdaki gibidir..
-------
2016-06-22 17:26:07.616 APP[1733:871678] url-->http://www.mynet.com/?gcm_id=76f9409210acd9bfd1bdcf06b66343198e7e6147882b0e94ea10dbacd77b8f32&app_type=APP
+1 oy
21, Haziran, 2016 yasin tarafından cevaplandı

notification ile gönderdiğiniz URL'yi nasıl alıyorsunuz?
herhalde notification payload'inin içerisine özel bir URL parametresi ekleyerek mesajlarınızı push ediyorsunuz değil mi?
appDelegate içerisinde notification'ları aldığımız delegate metodu olan "didReceiveRemoteNotification" içerisinde alınan payload içerisindeki özel url parametrenizi alın ve uygulama içerisinde bir UIwebView oluşturarak içerisinde açın. kullanıcıyı uygulama dışına yönlendirmenize gerek yok.

21, Haziran, 2016 yusta tarafından yorumlandı
yani appdelegate içinde gelen url bildirimini webview de açtırmak istiyorum. olayın kısaca acıklaması budur.

yardımlarınızı bekliyorum.
21, Haziran, 2016 yasin tarafından yorumlandı
telefonla yardımcı olacak kadar vaktim yok şu an için.
appDelegate içerisinde didReceiveRemoteNotification metodu ile notification payload'indan url'yi alabildiğini söylemişsin. Zaten kullanıcıyı uygulama dışında bir browser'a yönlendirebiliyorsun.
O halde problem aldığın url'yi açmak için kullandığın webView yapılandırmasında diye düşünüyorum.

öncelikle webView nerede yaratılıyor. Appdelegate içerisinde böyle birşey yapman mümkün değil zaten.
webView'in main viewController altında yapılandırılmış olması lazım.
eğer bu durum doğruysa appDelegate'den viewController altında yapılandırmış olduğun webView'e ilgili url'yi aktarmak kalıyor ki.
Bunu da bir çok farklı yolla yapabilirsin zaten.
appDelegate içerisinden self.window.rootViewController ile mainViewController'ina ulaşabilirsin.
viewController'da bir metod oluştur ve didReceiveRemoteNotification metodu tetiklenip url'yi aldığında self.window.rootViewController ile ilgili viewController da oluşturduğun metoda aktar.

inan, yaptığın işi görmeden ne buradan yazarak yardımcı olabilirim ne de telefonla konuşarak.
zira sadece yaptığın hatanın ne olduğunu tahmin etmeye çalışarak ilerlemeye çalışıyoruz.
eğer mümkünse yapmaya çalıştığın şeyi basit bir proje üzerinde burada paylaşırsan daha etkili bir şekilde yardımcı olmaya çalışalım.
22, Haziran, 2016 yusta tarafından yorumlandı
projeyi burda nasıl paylaşabilirim?

NSLog(@"url-->%@",request.URL);
[self.webView loadRequest:request.URL];

Yine açılmıyor webview içinde..

Push Bildirim Log kaydı aşağıaki gibi geliyor, parçalıyorum URL ayrı alıyorum ama webview içinde açtıramıyorum :(

016-06-22 17:26:07.561 APP[1733:871678] userInfo {
    aps =     {
        alert = "Test Baslik";
        e = "-#PRT#22-06-2016#PRT#http://www.mynet.com#PRT#Test Mesaj#PRT#Test Baslik#PRT#3#PRT#";
        sound = default;
    };
}


Request.URL NSLog kaydı aşağıdaki gibidir..
-------
2016-06-22 17:26:07.616 APP[1733:871678] url-->http://www.mynet.com/?gcm_id=76f9409210acd9bfd1bdcf06b66343198e7e6147882b0e94ea10dbacd77b8f32&app_type=APP
23, Haziran, 2016 yasin tarafından yorumlandı
webView'i nasıl kullanacağına dair örnek bir objective-c projesi hazırladım.
içerisinde adım adım açıklamaklarını da yazdım.

appDelegate içerisinden, bir url string'ini notification ile viewController'a aktarıp webView'de açıyor.

şu adresten indirip inceleyebilirsin.
https://drive.google.com/open?id=0B_33To7xgYO7MHgteVV5SVp4QVk
29, Haziran, 2016 yusta tarafından yorumlandı
Çok tşk ederim geç cevap için k.bakma sana özel bir mesaj attım kontrol edebilir misin?
Tşkler..
...