Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
4.5k kez görüntülendi
ios development kategorisinde tarafından

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
tarafından

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.

tarafından
Evet bildirim geldiğinde bildirim içinde url de geliyor o url webviewde açtırmak istiyorum.
tarafından
[[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'
tarafından
şö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.
tarafından
işte bunu nasıl yapabilirim bu konuda destek istiyorum 2. adıma kadar geliyorum sıkıntı yok.
tarafından
3- adıma neler yapılacağına dair daha detaylı bilgi verebilir misiniz? Tşkler..
tarafından
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
tarafından
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
tarafından

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.

tarafından
işte onu başaramadım zaten, uygulamamdan webview var ancak notificationdan gelen URL ancak openUrl ile açabiliyorum.. Webview göndermedim birtürlü..
tarafından
[[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'
tarafından
objective-c'de property'leri nasıl deklare ettiğiniz önemlidir.
header dosyasında,

@property (nonatomic,retain) UIWebView *webView

şeklinde mi oluşturuyorsunuz?
tarafından
Evet onuda yattım ancak yine açtıramadım :(
tarafından
[[[UIAlertView alloc] initWithTitle:[array objectAtIndex:4]
    message:[array objectAtIndex:3]
    delegate:nil cancelButtonTitle:@"Kapat" otherButtonTitles:nil, nil]
    show];
    
    
    /* [[UIApplication sharedApplication] openURL:request.URL]; */
    

     [_webView loadRequest:[NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]]];
     NSLog(@"son alan");
tarafından
[self.webView loadRequest:[NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]]];
     NSLog(@"son alan"); buda olmuyor..
tarafından
hüseyin arkadaşım söyleyince aklıma geldi.
sen bu webView'i nerede oluşturmaya çalışıyorsun tam olarak. appDelegate içerisinde mi yoksa?
tarafından
Valla nasıl anlatcam bilemedim..

Şimdi adımları söyle anlatayım.

Push bildirim appdelegate alanında yakalanıyor takip ettiğimde o alanlarda oldugunu gordum.

push bildirim geldiğinde ekrana bildirim title bildirim message leri alert olarak gösterebiliyorum sonrasında ise bildirimden parçalamış olduğu urlyi uygulamanın içinde webview de hemen açılmasını istiyorum?

isterseniz özelden numaramı paylaşıyım konusalım?
tarafından
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.
tarafından
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.
tarafından
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
tarafından
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
tarafından
Çok tşk ederim geç cevap için k.bakma sana özel bir mesaj attım kontrol edebilir misin?
Tşkler..
...