這曾是在WP7中幾乎不可能的任務,每個APP都在獨立的沙箱中,在WP8 變成可能@@

 

因公司某專案的需求是,APP去啟動另一個APP,iOS跟Android可以,但WP就是不行Orz,後來在假日的這兩天,發現WP7不行,但是WP8可以,參考了很多資料並嘗試許多次,最後終於成功研究出來。

接下來進入主題,APP啟動APP,有分為來源端(呼叫端Source)與目的端(被呼叫端Target),

 

1.首先必須到Target中的WMAppManifest.xml設定

1

 

2.(Target端)必須在</Tokens>底下插入<Extensions>與</Extensions>,然後Protocol Name是可以自行決定,但是有一些限制,必須是2~39英數字、全部小寫

2

 

3.(Target端)在方案總管新增AssociationUriMapper.cs,繼承UriMapperBase,覆寫MapUri,HttpUtility.UrlDecode進行解碼得到tempUri,然後如果包含phoneapp123表示是另一個APP進行呼叫,可以做相對應的處理,如果都不是則是正常的APP啟動

4

 

4.(Target端)在App.xaml.cs的private void InitializePhoneApplication()函式中加入RootFrame.UriMapper = new AssociationUriMapper();,讓APP可以監聽被呼叫的事件

5  

 

5.接下來在Source端,使用Button呼叫在函式中加入一個async(經測試,不加也可以),以Launcher.LaunchUriAsync(new Uri("剛定義的名稱:參數"));

3

 

    

 

參考資料:

http://www.cnblogs.com/sonic1abc/archive/2012/12/11/2811636.html

http://blog.csdn.net/l_serein/article/details/8717089

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx

arrow
arrow
    全站熱搜

    小賢 發表在 痞客邦 留言(0) 人氣()