<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # win10 uwp App-to-app communication 應用通信 這篇文章都是亂說的,如果覺得有不好的,可以發我郵箱 本文主要講如何讓兩個應用之間傳輸消息,也就是我們經常用的分享。我們可以使用的有剪輯版、UWP分享、Uri啟動應用多個方式。 ![這里寫圖片描述](http://img.blog.csdn.net/20160404102715815) 如果有個人看到一個網頁很好,于是就希望把這個網頁發送到郵件,那么這樣的話就是使用應用通信。 因為每個應用都是不能訪問其他應用數據,所以需要通信可以使用啟動內置應用,文件關聯應用。 <!--more--> <div id="toc"></div> ## 發送數據 創建一個event 可以在用戶發送,共享發送 ```csharp DataTransferManager data_transfer_manager = DataTransferManager.GetForCurrentView(); data_transfer_manager.DataRequested += DataTransferManager_DataRequested; ``` 當DataRequested,應用收到一個DataRequest,這個是DataPackage可以在里面寫你要發送的信息。DataPackage必須寫標題和數據,如果有描述也寫 ```csharp private static void DataTransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { DataRequest request = args.Request; } ``` 可以共享數據: - 純文本 - url - HTML - 文本 - 圖片 - 文件 - 自己弄的我也不知道是什么的可以共享的 ```csharp //文本 request.Data.SetText(text); //uri //request.Data.SetUri(uri);過時 request.Data.SetWebLink(uri); //html request.Data.SetHtmlFormat(html); request.Data.SetRtf(text); //文件 request.Data.SetStorageItems(file); //圖片 request.Data.SetBitmap(bitmap); ``` 我們需要和用戶說我們在做的數據 ```csharp request.Data.Properties.Title = "標題"; request.Data.Properties.Description = "我的博客blog.csdn.net/lindexi_gd"; ``` ![這里寫圖片描述](http://img.blog.csdn.net/20160404105455138) 開始通信 ```csharp DataTransferManager.ShowShareUI(); ``` 有時候我們需要等待一些操作需要時間,不能馬上就分享,我們可以使用 ```csharp request.Data.Properties.Title = "標題"; request.Data.Properties.Description = "我的博客blog.csdn.net/lindexi_gd"; request.Data.SetDataProvider(StandardDataFormats.Bitmap, (data_provider_request) => { DataProviderDeferral deferral = data_provider_request.GetDeferral(); //做時間比較長的操作 //一般可以把操作內容放try,因為操作內容主要是io,有出錯 //如果放在try,把deferral.Complete();finally //try //{ // //操作 //} //finally //{ // //deferral.Complete(); //} deferral.Complete(); }); ``` 要接受其他的app我們需要設置`requestData.Properties.ContentSourceApplicationLink = ApplicationLink;` ApplicationLink是`new Uri("ms-sdk-sharesourcecs:navigate?page=" + 頁面名);` 要接受其他的app我們需要設置 ![](http://7xqpl8.com1.z0.glb.clouddn.com/16-4-5/70888377.jpg) ![](http://7xqpl8.com1.z0.glb.clouddn.com/16-4-5/65763757.jpg) 我們在說明寫:林德熙博客 但說明其實沒有什么用,主要是數據格式才是需要我們選擇,在上也看到我們可以分享的數據有多種格式,那么滿足格式的分享就會在分享看到我們的應用。 ![](http://7xqpl8.com1.z0.glb.clouddn.com/16-4-5/25742257.jpg) 新建一個頁面接分享,因為我想不到這個叫什么,我就放在MainPage 導航到MainPage就是分享打開 頁面傳參數可以使用,`Frame frame.Navigate`(頁面,參數) ```csharp protected override void OnNavigatedTo(NavigationEventArgs e) { } ``` 在App.xaml.cs ```csharp protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args) { Frame rootFrame = Window.Current.Content as Frame; if (rootFrame == null) { rootFrame=new Frame(); Window.Current.Content = rootFrame;//http://blog.csdn.net/lindexi_gd } rootFrame.Navigate(typeof (MainPage), args.ShareOperation); Window.Current.Activate(); } ``` 我們可以在OnNavigatedTo拿分享 ```csharp protected override async void OnNavigatedTo(NavigationEventArgs e) { ShareOperation share_operation = e.Parameter as ShareOperation; if (share_operation == null) { return; } //標題 string shared_data_title = share_operation.Data.Properties.Title; string shared_data_description = share_operation.Data.Properties.Description; Uri url = share_operation.Data.Properties.ContentSourceWebLink; Uri application_link = share_operation.Data.Properties.ContentSourceApplicationLink; //圖像 RandomAccessStreamReference thumbnail = share_operation.Data.Properties.Thumbnail; //應用名稱 string application_name = share_operation.Data.Properties.ApplicationName; //數據 //判斷存在,如果不存在我們 if (share_operation.Data.Contains(StandardDataFormats.WebLink)) { Uri web_link =await share_operation.Data.GetWebLinkAsync(); } } ``` 當我們做完可以告訴` share_operation.ReportCompleted();` 如果錯了可以告訴發送我們接受錯 分享成功經常返回一個鏈接,我們把一個東西分享到百度云,那么我們可以拿到一個鏈接百度云,可以發送,這個`QuickLink` `QuickLink `·我們需要標題,圖標,id ```csharp QuickLink quickLinkInfo = new QuickLink() { Id = QuickLinkId, Title = QuickLinkTitle, SupportedFileTypes = { "*" }, SupportedDataFormats = { StandardDataFormats.Text, StandardDataFormats.WebLink, StandardDataFormats.ApplicationLink, StandardDataFormats.Bitmap,//http://blog.csdn.net/lindexi_gd StandardDataFormats.StorageItems, StandardDataFormats.Html }, Thumbnail = thumbnail, }; share_operation.ReportCompleted(quickLinkInfo); ``` ## 文件啟動 我們需要關聯 ![這里寫圖片描述](http://img.blog.csdn.net/20160405185522977) 在app.xaml.cs ```csharp protected override void OnFileActivated(FileActivatedEventArgs args) { // args.Files } ``` Files包含文件可以拿來 博客:http://blog.csdn.net/lindexi_gd 原文:https://msdn.microsoft.com/en-us/windows/uwp/app-to-app/index <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知識共享許可協議" style="border-width:0" src="https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png" /></a><br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議</a>進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名[林德熙](http://blog.csdn.net/lindexi_gd)(包含鏈接:http://blog.csdn.net/lindexi_gd ),不得用于商業目的,基于本文修改后的作品務必以相同的許可發布。如有任何疑問,請與我[聯系](mailto:lindexi_gd@163.com)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看