2016-04-11 39 views
1

UIViewController Xamarin-iOS'taki UIWebView mesajı yayınlanmıştır windows.external.notify 've kullanarak windows telefon kullanarak token alabildim ama sorun bu bildirim komut dosyasını okumak için iOS web görünümünde herhangi bir kod parçacığı algılayamam mümkün olmasıdır.Yakalama Ben UIWebView dan giriş çalışıyorum ve başarıyla doğrulandı eğer o zaman komut dosyası kullanarak bir dize <strong>belirteç</strong> alıyorum bir senaryo var <code>window.external.notify</code> I pasajı

'u denedim ama burada IWKScriptMessageHandler kullandım ama çalışmadı.

Bunu iOS'ta bitirmeme yardımcı olabilir misiniz?

cevap

0

Azure Access Control Services için bir süre önce böyle bir şey yaptım. Buradaki kod şu adreste bulunabilir: https://github.com/Cheesebaron/Cheesebaron.MvxPlugins/blob/0e8b7765fe375d1d4998552074d664e6cf5397a3/AzureAccessControl/AzureAccessControl.Touch/Views/AccessControlWebAuthController.cs

Temel olarak bu, bir komut dosyası çağrıldığında sayfaya bir Bildirim komut dosyası enjekte ederken, bildiğim ve yük yükünü alabildiğim belirli bir URL'ye gider. bildirmek komut çağrıldığında

private const string ScriptNotify = @" 
    <script type=""text/javascript""> 
     window.external = { 
      'Notify': function(s) { 
       document.location = 'acs://settoken?token=' + s; 
      }, 
      'notify': function(s) { 
       document.location = 'acs://settoken?token=' + s; 
      } 
     }; 
    </script>"; 

Yani Yukarıdaki kod acs://settoken?token= gider. URL şemasını denetleyerek bunu UIWebView.ShouldStartLoad'da algılayabilirsiniz. Bildirim komut dosyasındakiyle uyuşuyorsa, bitirdiniz.

Komut dosyasını enjekte etmek için, NSUrlConnectionDelegate kodunu uygularım ve FinishedLoading geçersiz kılma verilerini veriye göre enjekte ediyorum ve UIWebView bu içeriği yüklemesini sağlayın.

+0

Master @Cheesebaron Teşekkürler! Kod snippet'ini gördüm ve bir şüphem var ve bu webview'a yüklemek için kullanıyorum bir URL zaten bu script 'window.external.notify' olduğunu bildiren giriş başarı iken. Şimdi, sağladığınız komut dosyasını eklemeniz gerekiyor mu? – RIYAZ