2016-07-08 5 views
1

Ich war auf dem Code here von xamarin Ausbildung suche here und wie ich durch den Code (für meine eigenen pädagogischen Zwecke) werde, bemerkte ich diese Linie (Linie 42)Fest codierte URL zum Testen der Konnektivität

public async virtual Task Sync() 
    { 
     var connected = await Plugin.Connectivity.CrossConnectivity.Current.IsReachable("google.com"); 
     if (connected == false) 
      return; 

Ich könnte falsch liegen .. aber für mich sieht es wie der einzige Zweck, um die Konnektivität zu testen. Gibt es eine bessere Möglichkeit, dies zu tun als google.com hard-code, nur um zu sehen, ob es eine Verbindung gibt? Gibt es irgendwo eine Flagge, auf die man testen kann? Was passiert, wenn google ausgeschaltet ist (ignorieren Sie den Riss im Raum-Zeit-Kontinuum)?

Antwort

2

Es ist nicht ungewöhnlich. Zum Beispiel stellen iOS und Mac eine Verbindung zu http://www.apple.com/library/test/success.html oder http://captive.apple.com/hotspot-detect.html oder einer anderen URL im Namen des Benutzers her, wenn sie einem Wi-Fi-Netzwerk beitreten, um zu sehen, ob das Netzwerk über eine Internetverbindung verfügt und um Portale zu erkennen. Microsoft- und Android-Geräte tun etwas Ähnliches, nur mit einer anderen bekannten URL.

Es ist wahrscheinlich am besten zu versuchen, eine Verbindung zu einem von Ihnen kontrollierten Dienst herzustellen, da im Allgemeinen, wenn Ihre App nutzlos ist, wenn sie keine Verbindung zu yourapp.com herstellen kann, es am besten ist, eine Verbindung zu yourapp.com herzustellen .

Der Test, um zu sehen, ob google.com verfügbar ist, ist ein angemessener Fallback, um zu sehen, ob das Gerät "Konnektivität" hat.

+0

Eine Fußnote dazu, der betreffende Code ist weg. Siehe https://github.com/MikeCodesDotNet/App-Service-Helpers/commit/c0eeecebab7671d5b02020b6e8b8bce002bc3008 Ich denke, dass es schließlich nicht nötig war. – Zuzlx

3

Wenn Sie die Konnektivität testen, um zu testen, ob Ihre Azure Mobile App aktiv ist, ersetzen Sie google.com durch die URL des Dienstes. Es scheint, dass Sie wirklich möchten, dass Sie testen möchten.

+0

Eine "Verbindung" ist wahrscheinlich nicht besonders hilfreich, wenn Sie keine Verbindung zu dem herstellen können, was Sie wirklich benötigen (Ihre Service-Schicht). Ich mag diese Antwort. – dylansturg