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(); }
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(); }); }