Skip to main content
ProximityDevice.PublishUriMessage(Uri) | publishUriMessage(Uri) method

Applies to Windows and Windows Phone

Publishes a Uniform Resource Identifier (URI) to a proximate device.

Syntax


var number = proximityDevice.publishUriMessage(message);

public long PublishUriMessage(
  Uri message
)

Public Function PublishUriMessage(
  message As Uri 
) As Long

public:
long long PublishUriMessage(
  Uri^ message
)

Parameters

message

Type: Windows.Foundation.Uri [JavaScript] | System.Uri [.NET] | Windows::Foundation::Uri [C++]

The URI to publish.

Return value

Type: Number [JavaScript] | System.Int64 [.NET] | int64 [C++]

The publication ID of the message.

Remarks

Only one URI can be published at a time for each proximity device.

You can stop publishing a URI by passing the publication ID returned by the PublishUriMessage method to the StopPublishingMessage method.

Unlike the other publish methods for a proximity device, URI publishing is handled by the default protocol handler for the URI. A subscription to a URI message publication is not required. You can receive URI messages by registering a default handler for a URI protocol such as the HTTP protocol.

The PackageFamilyName value of the sending application is automatically sent along with the URI. If no handler is registered for the protocol of a URI, the PackageFamilyName value of the sending application is used to direct the receiving application to the application store.

You can use the PublishMessage method to publish a text message to a proximate computer. You can use the PublishBinaryMessage method to publish non-text messages or messages that conform to the NDEF messaging standard.

Important  

The proximity APIs do not provide authentication, encryption, or message integrity. Do not use proximity to exchange user sensitive information such as passwords, financial data, text messages, email, photographs, or government id numbers.

Examples


    private Windows.Networking.Proximity.ProximityDevice proximityDevice;
        
    public MainPage()
    {
        this.InitializeComponent();

        initializeProximitySample();
    }

    private void initializeProximitySample() 
    {
        proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault();

        if (proximityDevice == null)
            WriteMessageText("Failed to initialized proximity device.\n" +
                             "Your device may not have proximity hardware.");
    }

    // Write a message to MessageBlock on the UI thread.
    private Windows.UI.Core.CoreDispatcher messageDispatcher = Window.Current.CoreWindow.Dispatcher;

    async private void WriteMessageText(string message, bool overwrite = false)
    {
        await messageDispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
            () =>
            {
                if (overwrite)
                    MessageBlock.Text = message;
                else
                    MessageBlock.Text += message;
            });
    }

var proximityDevice;
 
app.onactivated = function (args) {
    if (args.detail.kind === activation.ActivationKind.launch) {
        initializeProximitySample();

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

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

function initializeProximitySample() {
    proximityDevice = Windows.Networking.Proximity.ProximityDevice.getDefault();

    if (proximityDevice) {
        id("publishUriButton").addEventListener("click", publishUri);
        id("stopPublishingUriButton").addEventListener("click",
        stopPublishingUri);
    }
    else {
        id("messageDiv").innerHTML += "Failed to initialize proximity device." +
             "Your device may not have proximity hardware.<br />";
    }
}

Private proximityDevice As Windows.Networking.Proximity.ProximityDevice

Public Sub New()
    Me.InitializeComponent()

    initializeProximitySample()
End Sub

Private Sub initializeProximitySample()
    proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault()

    If proximityDevice Is Nothing Then
        WriteMessageText("Failed to initialized proximity device." & vbCrLf &
                         "Your device may not have proximity hardware.")
    End If
End Sub

' Write a message to MessageBlock on the UI thread.
Private Async Sub WriteMessageText(message As String, Optional overwrite As Boolean = False)
    Await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
            Sub()
                If overwrite Then
                    MessageBlock.Text = message
                Else
                    MessageBlock.Text &= message
                End If
            End Sub)
End Sub

long publishedUriId = -1;

private void PublishUriButton_Click(object sender, RoutedEventArgs e)
{
    // Stop publishing the current message.
    if (publishedUriId != -1)
        proximityDevice.StopPublishingMessage(publishedUriId);

    publishedUriId =
        proximityDevice.PublishUriMessage(new Uri("http://www.microsoft.com"));
}

private void StopPublishingUriButton_Click(object sender, RoutedEventArgs e)
{
    proximityDevice.StopPublishingMessage(publishedUriId);
}

var publishedUriId = -1;

function publishUri() {
    // Stop publishing the current Uri.
    if (publishedUriId != -1) {
        proximityDevice.stopPublishingUri(publishedUriId);
    }

    publishedUriId =
    proximityDevice.publishUri(new Windows.Foundation.Uri("http://www.microsoft.com"));
}

function stopPublishingUri() {
    proximityDevice.stopPublishingMessage(publishedUriId);
}

Private publishedUriId As Long = -1

Private Sub PublishUriButton_Click(sender As Object, e As RoutedEventArgs)
    ' Stop publishing the current message.
    If publishedUriId <> -1 Then
        proximityDevice.StopPublishingMessage(publishedUriId)
    End If

    publishedUriId =
        proximityDevice.PublishUriMessage(New Uri("http:'www.microsoft.com"))
End Sub

Private Sub StopPublishingUriButton_Click()
    proximityDevice.StopPublishingMessage(publishedUriId)
End Sub

Requirements

Minimum supported client

Windows 8

Minimum supported server

Windows Server 2012

Minimum supported phone

Windows Phone 8

Namespace

Windows.Networking.Proximity
Windows::Networking::Proximity [C++]

Metadata

Windows.winmd

Capabilities

proximity
ID_CAP_PROXIMITY [Windows Phone]

See also

ProximityDevice
PublishUriMessage(Uri, MessageTransmittedHandler)
Proximity and Tapping (JavaScript)
Proximity and Tapping (C#/VB/C++)
Samples
Proximity sample