信息
您所需的主题如下所示。但此主题未包含在此库中。

ProximityDevice.PublishMessage(String, String) | publishMessage(String, String) Method

向指定消息类型订户发布消息。

语法


var number = proximityDevice.publishMessage(messageType, message);

参数

messageType

类型: String [JavaScript] | System.String [.NET] | Platform::String [C++]

发送给订户的消息的类型。

message

类型: String [JavaScript] | System.String [.NET] | Platform::String [C++]

发送给订户的消息。

返回值

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

发布消息的唯一发布 ID。将此值传递给 StopPublishingMessage 方法以阻止发布消息。

备注

可以使用 SubscribeForMessage 方法描述发布的消息。

消息将继续发布,直到调用了 StopPublishingMessage 方法或者释放了 ProximityDevice 对象。

消息将发送到已经订阅了该消息类型的所有应用程序(如 messageType 参数所指示)。消息类型的值是区分大小写的字符串,包含两个部分:协议和子类型。协议在前,后跟一个句点 (.),然后是子类型。对于 PublishMessage 方法,协议必须始终为“Windows”。子类型是字母数字字符和下列其他字符组成的字符串:. ( ) + , - : = @ ; $ _ ! * ’子类型的长度不能超过 250 个字符。

要使用另一消息类型发布消息,如“WindowsMime”。或“NDEF:WriteTag”,您必须使用 PublishBinaryMessage 方法。

可以使用 PublishUriMessage 方法将统一资源标识符 (URI) 发布给某个接近程度计算机。

在传输之前,消息转换为 UTF-8 字符。

对于 Windows Store 应用程序,发布和订阅仅在调用程序位于前景中时才处于活动状态。

重要事项  

邻近 API 不提供身份验证、加密或消息的完整性。不要使用邻近感应来交换用户敏感信息,如密码、财务数据、文本消息、电子邮件、照片或身份证号码。

示例


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

var proximityDevice;
var publishedMessageId = -1;
var subscribedMessageId = -1;

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

    if (proximityDevice) {
        id("publishMessageButton").addEventListener("click", publishMessage);
        id("subscribeForMessageButton").addEventListener("click", subscribeForMessage);
id("stopSubscribingForMessageButton").addEventListener("click", 
    stopSubScribingForMessage);
id("stopPublishingMessageButton").addEventListener("click", 
    stopPublishingMessage);
    }
    else {
        id("messageDiv").innerHTML += "Failed to initialized proximity device.<br />";
    }
}

function publishMessage() {
    // Stop publishing the current message.
    if (publishedMessageId != -1) {
        proximityDevice.stopPublishingMessage(publishedMessageId);
    }

    publishedMessageId = 
proximityDevice.publishMessage("Windows.SampleMessage", id("messageText").value);
}

function subscribeForMessage() {
    // Only subscribe for the message one time.
    if (subscribedMessageId === -1) {
        subscribedMessageId = 
    proximityDevice.subscribeForMessage("Windows.SampleMessage", messageReceived);
    }
}

function messageReceived(device, message) {
    id("messageDiv").innerHTML += "Message received: " + message.dataAsString + "<br />";
}

    function stopSubscribingForMessage() {
proximityDevice.stopSubscribingForMessage(subscribedMessageId);
    subscribedMessageId = -1;
    }

    function stopPublishingMessage() {
proximityDevice.stopPublishingMessage(publishedMessageId);
    publishedMessageId = -1;
    }


要求

最低支持客户端

Windows 8

最低支持服务器

Windows Server 2012

最低支持电话

Windows Phone 8

命名空间

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

元数据

Windows.winmd

Capabilities

proximity
ID_CAP_PROXIMITY [Windows Phone]

另请参见

ProximityDevice
PublishMessage(String, String, MessageTransmittedHandler)
PublishBinaryMessage
PublishUriMessage
StopPublishingMessage
接近程度和轻击 (JavaScript)
接近程度和轻击 (C#/VB/C++)
示例
接近程度示例

 

 

显示: