在 Windows Phone 8、8.1 和 10(移动设备)上创建共享按钮

Create a Share button on Windows Phone 8, 8.1 and 10 (Mobile)

如何在 Windows Phone 8、8.1 和 10(移动版)上创建一个共享按钮(将已定义的消息共享给其他玩家联系人),如下图所示):

要创建此脚本以在 Android 设备 上共享,我使用以下代码:

public class ShareScript : MonoBehaviour {

    string subject = "Subject";
    string body = "Body";

    public void OnAndroidTextSharingClick()
    {
        StartCoroutine(ShareAndroidText());
    }
    IEnumerator ShareAndroidText()
    {
        yield return new WaitForEndOfFrame();
        //execute the below lines if being run on a Android device
        #if UNITY_ANDROID
            //Reference of AndroidJavaClass class for intent
            AndroidJavaClass intentClass = new AndroidJavaClass ("android.content.Intent");
            //Reference of AndroidJavaObject class for intent
            AndroidJavaObject intentObject = new AndroidJavaObject ("android.content.Intent");
            //call setAction method of the Intent object created
            intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND"));
            //set the type of sharing that is happening
            intentObject.Call<AndroidJavaObject>("setType", "text/plain");
            //add data to be passed to the other activity i.e., the data to be sent
            intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), subject);
            //intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TITLE"), "Text Sharing ");
            intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), body);
            //get the current activity
            AndroidJavaClass unity = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
            AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
            //start the activity by sending the intent data
            AndroidJavaObject jChooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, "Share Via");
            currentActivity.Call("startActivity", jChooser);
        #endif
    }
}

调用 DataTransferManager.ShowShareUI 以显示共享窗格。

处理 DataTransferManager。DataRequested 事件以在用户选择共享时提供数据。

private void DataRequested(DataTransferManager sender, DataRequestedEventArgs e)
{
    DataRequest request = e.Request;
    request.Data.Properties.Title = "Share Text Example";
    request.Data.Properties.Description = "An example of how to share text.";
    request.Data.SetText("Hello World!");
}

有关详细信息,请参阅 MSDN 上的 Share data 文档。

在 Unity 中,您可以在 #if NETFX_CORE 块中调用它们,因此它仅在使用 Windows 运行时而不是 Mono 时运行。请参阅 Windows Store Apps: WinRT API in C# scripts. If you target Windows 10 then there are plug-ins at https://github.com/microsoft/unityplugins,其中包括共享。对于早期的目标,有商业插件。