示例#1
0
        public async void OnGetActivityClick(object sender, RoutedEventArgs e)
        {
            ActivityId = Guid.NewGuid().ToString();

            // Get or Create a activity
            var activity = await UserActivityChannel.GetDefault().GetOrCreateUserActivityAsync(ActivityId);

            // if you want to use Adaptive card, reference: https://docs.microsoft.com/en-us/adaptive-cards/create/gettingstarted
            activity.VisualElements.Content = AdaptiveCardBuilder.CreateAdaptiveCardFromJson(@"{
                                              ""$schema"": ""http://adaptivecards.io/schemas/adaptive-card.json"",
                                              ""type"": ""AdaptiveCard"",
                                              ""backgroundImage"": ""https://cdn2.ettoday.net/images/1376/d1376700.jpg"",
                                              ""version"": ""1.0"",
                                              ""body"" : [ {
                                                ""type"": ""Container"", 
                                                ""items"": [
                                                    {
                                                        ""type"": ""TextBlock"",
                                                        ""text"": ""from adaptive card"",
                                                        ""size"": ""large"",
                                                        ""wrap"": ""true"",
                                                        ""maxLines"": ""3""
                                                    }    
                                                ]
                                              } ]
                                              }");

            if (activity.State == UserActivityState.New)
            {
                // this is a new activity
                activity.VisualElements.DisplayText = "new activity";
                activity.ActivationUri = new Uri($"testapp://mainPage?state=new&id={ActivityId}");
            }
            else
            {
                // this is published activity
                activity.VisualElements.DisplayText = "published activity";
                activity.ActivationUri = new Uri($"testapp://mainPage?state=published&id={ActivityId}");
            }

            // set activity content info
            activity.ContentInfo = UserActivityContentInfo.FromJson(@"{
                ""user_id"": ""pou"",
                ""email"": ""*****@*****.**""
            }");

            // FallbackUri is handled when System invoke ActivationUri failed.
            //activity.FallbackUri = new Uri("https://dotblogs.com.tw/pou");

            activity.VisualElements.BackgroundColor = Color.FromArgb(0xFF, 0x88, 0x88, 0x88);

            await activity.SaveAsync();

            // a activity match an session, need close other sessions.
            activitySesion?.Dispose();
            activitySesion = activity.CreateSession();
        }
示例#2
0
        public static async Task GenerateActivityAsync(string ChannelId, string ChannelName, string Image)
        {
            channel      = UserActivityChannel.GetDefault();
            userActivity = await channel.GetOrCreateUserActivityAsync(ChannelId);

            //Populate required properties
            timelinecard = timelinecard.Replace("$TITLE", ChannelName);
            timelinecard = timelinecard.Replace("$SUBTITLE", "");

            if (Image != null)
            {
                timelinecard = timelinecard.Replace("$IMAGE", Image);
            }

            userActivity.VisualElements.Content     = AdaptiveCardBuilder.CreateAdaptiveCardFromJson(timelinecard);
            userActivity.VisualElements.DisplayText = "Hello Activities";

            userActivity.ActivationUri = new Uri("quarrel://channels/@me/" + ChannelId);
            if (Image != null)
            {
                userActivity.ContentUri = new Uri(Image);
            }
            userActivity.ContentInfo = UserActivityContentInfo.FromJson("{\"@context\":\"~~http~~://schema.org\",\"@type\": \"CommunicateAction\",\"subjectOf\": \"" + ChannelName + "\"}");
            userActivity.FallbackUri = new Uri("http://discordapp.com/channels/@me/" + ChannelId);


            //Save
            await userActivity.SaveAsync(); //save the new metadata

            _currentActivity?.Dispose();
            await App.dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                                          () =>
            {
                _currentActivity = userActivity.CreateSession();
            });
        }