根據接收數據的報告共享狀態的部分,
其結果是,你不應該,除非你的應用程序是在能夠被用戶駁回了點調用它。
我猜這個例外的原因是報告動作需要用戶的權限。如果您直接撥打ShareTargetActivated
中的shareOperation.ReportCompleted();
,您將跳過用戶的授權。這似乎是不允許的。 解決方法是,您可以使用Button_Click
或OnGotFocus
之類的函數處理代碼shareOperation.ReportCompleted();
。以下代碼示例可以解決您的問題。
App.xaml.cs代碼:
protected override async void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
rootFrame = new Frame();
rootFrame.Language = Windows.Globalization.ApplicationLanguages.Languages[0];
rootFrame.NavigationFailed += OnNavigationFailed;
Window.Current.Content = rootFrame;
}
rootFrame.Navigate(typeof(MainPage), args.ShareOperation);
Window.Current.Activate();
}
MainPage.xaml.cs中的代碼:
ShareOperation shareOperation;
protected override async void OnGotFocus(RoutedEventArgs e)
{
Uri uriReceived = null;
if (shareOperation.Data.Contains(StandardDataFormats.WebLink))
uriReceived = await shareOperation.Data.GetWebLinkAsync();
this.shareOperation.ReportCompleted();
base.OnGotFocus(e);
}
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
this.shareOperation = (ShareOperation)e.Parameter;
}
更多詳細信息請參考官方sharetarget sample。
感謝您的幫助!我想在我的情況下,我應該使用協議不共享目標。 – AbsoluteSith