Language: HTML | XAML

Unterstützen von Näherung und Kopplung (Windows-Runtime-Apps mit JavaScript und HTML)

Applies to Windows and Windows Phone

Zweck

Sie können Ihre Apps mithilfe von Näherung zur Verwendung der Nahfeldkommunikation (Near-Field Communication, NFC) und zum Verbinden von zwei Computern ohne Netzwerk mit WiFi-Direct erweitern. Mit Näherung und NFC können Sie PCs durch eine einfache Kopplung verbinden. Wenn sich zwei Computer in einem Abstand von drei bis vier Zentimetern befinden oder sich berühren, stellt das Betriebssystem fest, dass ein Computer in der Nähe ist. Sie können zwei PCs, auf denen Ihre App ausgeführt wird, auch mittels Peersuche mit WiFi Direct verbinden, sofern sie sich innerhalb der Drahtlosreichweite befinden. Sie können die beiden PCs dann verbinden, um Inhalte wie Fotos oder Links zu teilen, Multiplayer-Spiele zu ermöglichen oder Nachrichten zu veröffentlichen oder abonnieren.

Wichtig  

Um das Koppeln zu ermöglichen, muss ein PC mit einem Näherungsgerät ausgestattet sein, z. B. einem NFC-Funkgerät. Für die Peersuche muss ein PC mit einem WiFi-Gerät ausgestattet sein, das WiFi Direct unterstützt.

Inhalt dieses Abschnitts

ThemaBeschreibung

Schnellstart: Verbinden von Apps durch Koppeln oder Navigation

Wenn Sie die Näherung verwenden, können Sie durch eine einfache Tippbewegung oder durch Suchen nach Geräten in einer Drahtlosreichweite eine Verbindung zwischen zwei Geräten herstellen. Sie müssen nicht mit einem Netzwerk verbunden sein. Sie können einfach zwei Computer koppeln oder mit Wi-Fi Direct eine Verbindung herstellen.

Schnellstart: Veröffentlichen und Abonnieren von Nachrichten durch Koppeln

Mit der Näherungsfunktion können Sie zwischen zwei Computern gesendete Nachrichten veröffentlichen und abonnieren und mit einer einfachen Tippbewegung statische Tags auf einen Computer schreiben. Wenn sich zwei Computer in einem Abstand von 3 bis 4 cm voneinander befinden, benachrichtigt die Näherungsfunktion das System. In diesem Thema wird gezeigt, wie Sie Näherung verwenden, um eine Nachricht zu veröffentlichen oder zu abonnieren.

Testen der Näherung in Apps und Behandeln von Problemen

Dieses Thema stellt Richtlinien für App-Entwickler bereit, um die Näherungsfunktion in einer App zu testen und eine Problembehandlung durchzuführen, bevor die App an Windows Store übermittelt wird.

 

Entwicklergruppe

Näherung kann von Entwicklern verwendet werden, die ihre App erweitern möchten, um mühelose Verbindungen durch Koppeln oder die Suche nach anderen Geräten, auf denen die App ausgeführt wird (Peer-Apps), innerhalb der Funkreichweite zu ermöglichen. Sie könnten z. B. ein Multiplayer-Spiel erstellen, bei dem Benutzer ihre PCs koppeln, um eine gemeinsame Spielsitzung einzurichten. Eine App, in der Kunden einen PC koppeln und einen Link erhalten, unter dem sie weitere Informationen erhalten oder einen Einkauf tätigen können, wäre eine weitere Verwendungsmöglichkeit.

Mit Näherung können Sie einen schnellen Datenaustausch während einer Tippbewegung ermöglichen. Sie können die Kopplung auch verwenden, um einen langfristigen Kommunikationskanal per Infrastrukturnetzwerk, Wi-Fi-Direct oder Bluetooth einzurichten.

Näherung wird von den Klassen in der Windows-Runtime im Windows.Networking.Proximity-Namespace unterstützt. Mithilfe der ProximityDevice-Klasse können Sie mit anderen PCs in einem Bereich von 3 bis 4 cm kommunizieren und während der Kopplung eine kleine Datenmenge austauschen. Mithilfe der PeerFinder-Klasse können Sie mit Peer-Apps kommunizieren und eine langfristige Socketverbindung einrichten. Eine Peer-App ist eine weitere Instanz einer App, die auf einem separaten PC ausgeführt wird.

Im folgenden Code wird beispielsweise die statische GetDefault-Methode der ProximityDevice-Klasse zum Abrufen eines Verweises auf das Näherungsgerät für den lokalen Computer verwendet. Durch das Verknüpfen von Ereignishandlern mit den Ereignissen DeviceArrived und DeviceDeparted können Sie ermitteln, wann sich ein Gerät im Näherungsbereich befindet.


function id(elementId) {
    return document.getElementById(elementId);
}

WinJS.Application.onmainwindowactivated = function (e) {
    if (e.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {

        var proximityDevice = Windows.Networking.Proximity.ProximityDevice.getDefault();

        if (proximityDevice != null) {
            proximityDevice.addEventListener("devicearrived", 
                                             proximityDeviceArrived, false);
            proximityDevice.addEventListener("devicedeparted", 
                                             proximityDeviceDeparted, false);
        }
        else {
            id("MessageBlock").innerHTML += "Failed to initialize proximity device.<br/>";
        }

    }
}



function proximityDeviceArrived() {
    id("MessageBlock").innerHTML += "Proximate device arrived.<br/>";
}

function proximityDeviceDeparted() {
    id("MessageBlock").innerHTML += "Proximate device departed.<br/>";
}


Beispielcode für das Erstellen einer Netzwerkverbindung zwischen Geräten, die durch Kopplung oder Peersuche verbunden werden, finden Sie unter Schnellstart: Verbinden von Apps durch Koppeln oder Suchen. Beispielcode für das Austauschen kleiner Nachrichten zwischen gekoppelten Geräten finden Sie unter Schnellstart: Veröffentlichen und Abonnieren von Nachrichten durch Koppeln. Beispielcode für das Erstellen von App-Verbindungen mit mehreren Peers und die dynamische Suche nach Peer-Apps innerhalb des Bereichs mithilfe des PeerWatcher-Objekts finden Sie im Näherungsbeispiel.

Wichtig  

Um Näherung in Ihrer App zu unterstützen, müssen Sie die Funktion Näherung aktivieren.

Wichtig  

Die NäherungsAPIs bieten keine Authentifizierung, Verschlüsselung oder Meldungsintegrität. Verwenden Sie die Näherung nicht, um sensible Benutzerinformationen wie Kennwörter, Finanzdaten, Textnachrichten, E-Mails, Fotos oder Sozialversicherungsnummern auszutauschen.

So wird's gemacht: Feststellen, ob Näherung unterstützt wird

Wie bereits erwähnt muss auf einem Computer ein Gerät installiert sein, das die Windows-Schnittstelle für die Näherung implementiert, damit Sie die Näherungsfunktion nutzen können (Informationen zum Implementieren der Windows-Schnittstelle für die Näherung finden Sie in der Spezifikation zur Implementierung von Näherung in einem Nahfeld unter Windows 8.). Sie stellen fest, ob ein Gerät installiert ist, das Näherung unterstützt, indem Sie die PeerFinder.SupportedDiscoveryTypes-Eigenschaft daraufhin überprüfen, ob Triggered-Verbindungen unterstützt werden. Sie können auch prüfen, ob die GetDefault-Methode NULL zurückgibt, oder eine Liste aller Näherungsgeräte abrufen und sicherstellen, dass die Liste mindestens auf ein Gerät verweist. Ein Beispiel für das Abrufen einer Liste aller installierten Näherungsgeräte finden Sie in der GetDeviceSelector-Methode.

Näherung ist nur aktiviert, wenn Ihre App im Vordergrund ausgeführt wird.

Alle ProximityDevice- und PeerFinder-Vorgänge werden deaktiviert, wenn Ihre App in den Hintergrund verschoben wird. Sie können nur dann Nachrichten oder offene Socketverbindungen veröffentlichen und abonnieren, wenn die App im Vordergrund ausgeführt wird. Wird Ihre App nach dem Öffnen einer Socketverbindung in den Hintergrund verschoben, bleibt die Socketverbindung offen.

Aktivieren von Apps über Näherung

Wenn Sie den PeerFinder verwenden, und tippen, um eine Verbindung zwischen Ihrer App und einer Peer-App auf einem anderen PC herzustellen, fordert Windows den Benutzer des anderen Computers dazu auf, die App zu aktivieren, wenn diese nicht bereits ausgeführt wird oder sich im Vordergrund befindet. Wird die App bereits im Vordergrund ausgeführt, wird das Aktivierungsereignis ohne eine vorherige Aufforderung an den Benutzer ausgelöst. Sie können eine App, die nicht im Vordergrund ausgeführt wird, aktivieren, indem Sie die PeerFinder.Start-Methodenüberlast aufrufen, die einen Zeichenfolgeparameter verwendet. Der Zeichenfolgeparameter für die Start-Methode enthält eine Nachricht, die an die Peer-App gesendet wird. Die App wird aktiviert, und die Nachricht wird an die Aktivierungsargumente weitergegeben.

Bei der Aktivierung einer Peer-App mithilfe einer Tippbewegung wird das Activated-Ereignis ausgelöst. Die Kind der Aktivierung ist Launch. Wenn Sie das Ereignis aktivieren, indem Sie eine Nachricht mithilfe der PeerFinder.Start-Methode senden, kann der Nachrichtentext von der Arguments-Eigenschaft der Startargumente abgerufen werden. Wird Ihre App aktiviert, um einen StreamSocket zu öffnen, gibt die Arguments-Eigenschaft die Zeichenfolge Windows.Networking.Proximity.PeerFinder:StreamSocket zurück. Legen Sie in diesem Fall die TriggeredConnectionStateChanged-Eigenschaft auf einen entsprechenden Ereignishandler fest, und rufen Sie die PeerFinder.Start-Methode auf, um die Socketverbindung herzustellen.


app.onactivated = function (args) {
    if (args.detail.kind === activation.ActivationKind.launch) {
        if (args.detail.arguments == "Windows.Networking.Proximity.PeerFinder:StreamSocket") {
            // Call PeerFinder.Start to begin multi-user mode.
        }
        else {
            // Respond to the message string in args.detail.arguments
        }

        args.setPromise(WinJS.UI.processAll());
    }
}


Ein Beispiel für eine App, die mit einer Tippbewegung aktiviert wird und automatisch eine Socketverbindung herstellt, finden Sie unter Schnellstart: Verbinden von Anwendungen durch Koppeln oder Suchen.

Socketkommunikationsprotokoll

Wenn Sie mit einem StreamSocket-Objekt Informationen an eine Peer-App senden, können Sie das Protokoll für den Informationsaustausch definieren. Sie können beispielsweise ein XML-Format, durch Zeichen getrennte Name/Wert-Paare usw. verwenden. Wenn die PeerFinder-Klasse eine Socketverbindung zwischen Peer-Apps erstellt, werden die Apps unabhängig von ihrer Version verbunden. So kann es vorkommen, dass unterschiedliche Versionen der App miteinander kommunizieren. Angenommen, eine App erwartet den Empfang zweier 4-Byte-Werte, und eine neuere Version der App sendet die Daten als 8-Byte-Werte zur Unterstützung größerer Daten. In diesem Fall tritt bei der empfangenden App, die die 4-Byte-Werte erwartet, beim Verarbeiten der Daten ein Fehler auf. Achten Sie darauf, dass neuere Versionen der App weiter mit älteren Versionen kommunizieren können, die Ihr Kommunikationsprotokoll verwenden. Das heißt, stellen Sie sicher, dass ältere Versionen der App neue Informationen ignorieren können, die von neueren Versionen der App gesendet werden, ohne dass Probleme auftreten.

Tipp  

Bei der Kommunikation zwischen Peer-Apps müssen Sie häufig bestimmen, welche App die erste Nachricht sendet und welche App lauscht. Ein Vergleich von streamSocket.information.localAddress.canonicalName mit streamSocket.information.remoteHostName.canonicalName ist eine Möglichkeit, um zu bestimmen, ob die App als Sender oder Listener fungiert. Bei einem Test, ob die Version des Hostnamens höher ist als die des Remotehosts, erhalten Sie zwischen zwei Instanzen der App immer ein gegenteiliges Ergebnis.

Verwandte Themen

Schnellstart: Verbinden von Anwendungen durch Tippen oder Suchen
Schnellstart: Veröffentlichen und Abonnieren von Nachrichten durch Tippen
Richtlinien und Prüfliste für Näherung
Testen der Näherung in Apps und Behandeln von Problemen
Windows.Networking.Proximity namespace
Beispiele
Näherungsbeispiel

 

 

Anzeigen:
© 2014 Microsoft