Windows Phone 8 通过一个app启动另一个app
Winphone8 通过app启动第三方app需要被启动的app支持,具体操作步骤如下:
假设要通过PhoneApp2启动PhoneApp1
PhoneApp1端做的操作如下:
1、注册Protocol,即,用xml编辑器打开WMAppManifest.xml,在</Tokens>节点后面添加如下内容:
<Extensions>
<Protocol Name="phoneapp1" NavUriFragment="encodeLaunchUri=%s" TaskID="_default"/>
</Extensions>
其中Name的值是需要声明的,其余的值都不能修改
注意,不要和Windows Phone 8自带的Uri关联冲突,http://msdn.microsoft.com/zh-cn/library/jj207065
2、在App.xaml.cs中做如下修改:
(1)、声明一个类,用来处理关联的Uri
class ProtocolUriMapper : UriMapperBase
{
private string tempUri; public override Uri MapUri(Uri uri)
{
tempUri = uri.ToString(); if (tempUri.Contains("/Protocol"))
{
//接收到的Uri地址形如Protocol?encodedLaunchUri=contoso%3APage2
int index = tempUri.LastIndexOf("%3A");
if (index <= )
{
return uri;
}
tempUri = tempUri.Substring(index + );
switch (tempUri)
{
case "Page2":
return new Uri("/Page2.xaml", UriKind.Relative);
case "Page3":
return new Uri("/Page3.xaml", UriKind.Relative);
default:
return new Uri("/MainPage.xaml", UriKind.Relative);
}
}
return uri;
}
}
(2)、在 InitializePhoneApplication()方法体内添加一段代码
RootFrame.UriMapper = new ProtocolUriMapper();
效果如下所示:
private void InitializePhoneApplication()
{
if (phoneApplicationInitialized)
return; // 创建框架但先不将它设置为 RootVisual;这允许初始
// 屏幕保持活动状态,直到准备呈现应用程序时。
RootFrame = new PhoneApplicationFrame();
RootFrame.Navigated += CompleteInitializePhoneApplication; RootFrame.UriMapper = new ProtocolUriMapper(); // 处理导航故障
RootFrame.NavigationFailed += RootFrame_NavigationFailed; // 在下一次导航中处理清除 BackStack 的重置请求,
RootFrame.Navigated += CheckForResetNavigation; // 确保我们未再次初始化
phoneApplicationInitialized = true;
}
PhoneApp1端的修改就结束了,接下来修改PhoneApp2
3、在需要启动PhoneApp1的地方添加如下代码,跳转完之后关闭当前app
Windows.System.Launcher.LaunchUriAsync(new Uri("phoneapp1:Page2"));
Application.Current.Terminate();
这样就成功完成app之间的跳转
参考资料:http://technet.microsoft.com/zh-cn/magazine/jj206987(VS.105).aspx
Windows Phone 8 通过一个app启动另一个app的更多相关文章
- Android 一个app启动另一个app
最近,一个app启动另一个app,这个玩法挺火的嘛,有没有试过更新QQ到5.1版本,QQ的健康里面就可以添加其他app,实现从QQ跳转到其他app应用.这个挺好玩的,一下子带来了多少流量啊. 一.先来 ...
- ios 一个app启动另一个app
问题描述:需要从一个ios应用程序中,能启动另一个ios应用程序. 开发环境:xcode7.3.1 关键词:白名单(LSApplicationQueriesSchemes).注册自己的URL Demo ...
- SystemUI中监听app启动,修改app中的状态栏背景色
参考 http://www.2cto.com/kf/201206/137225.html 从Android4.4开始,app可以自定义status bar 背景. 对于一些第三方app定义的状态栏背景 ...
- Android 中如何从一个App启动另外一个App(如启动支付界面、启动地图界面、应用商场下载App等场景)
假定两个App,分别是A和B,当A运行某个功能需要启动B,一种是启动B应用,一种直接进入B的某个Activity.搜了很多资料,没有一个完整的.下面就A--Android5.1.1.B--Androi ...
- android 嵌套 apk 从一个apk启动另外一个apk
a.apk-主应用 b.apk-被启动应用 主要思想:把b.apk放到assets目录下,由于有大小限制(1M),所以改名成b.mp3(因为mp3,jpg,png,mp4等不会检查,不会限制大小), ...
- 通过自定义的URL Scheme启动你的App
iPhone SDK可以把你的App和一个自定义的URL Scheme绑定.该URL Scheme可用来从浏览器或别的App启动你的App. 如何响应从别的App里发给你的URL Scheme申请,由 ...
- 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议
[源码下载] 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议 作者:webabcd 介绍与众不同 windows ...
- 重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议
原文:重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议 [源码下载] 重新想象 Windows 8 Store ...
- Android项目实战(二十二):启动另一个APP or 重启本APP
一.启动另一个APP 目前公司项目需求,一个主APP,需要打开某些小APP,这些小APP是整合了Unity的,但是还是android程序(所有小APP的包名是已知的). 以前没做过,查询了一下实现方法 ...
随机推荐
- 用java程序调用ffmpeg执行视频文件格式转换flv
用java小例题说明更直观:(可以直接编译运行)环境我在windows平台下测试的...需要在e:/下有ffmpeg.exe;mencoder.exe;drv43260.dll;pncrt.dll共4 ...
- fatal error C1853: '*.pch' is not a precompiled header file created with this compile
在菜单下选择Build--->点击Rebuild All,如果不起作用,你可以先把Debug或者Release中的文件删除,然后再试.
- ubuntu英文乱码解决
ubuntu英文乱码: vi /etc/default/locale LANG="en_US.UTF-8" LANGUAGE="en_US:en" 配置更 ...
- (转)如果知道dll文件是面向32位系统还是面向64位系统的?
本文为转载文章,原文地址:http://www.cnblogs.com/qguohog/archive/2011/09/13/2174897.html,仅仅是记录供后续使用,如有侵权请通知删除. 在发 ...
- (转)C#操作PPT
原文地址:http://blog.163.com/loveyingchun_1314/blog/static/2382425120124312627530/ 引用Microsoft.Office.Co ...
- JAXB注解【转】
http://blog.csdn.net/lw371496536/article/details/6942045 JAXB(Java API for XML Binding),提供了一个快速便捷的方式 ...
- How to Modify Public Network Information including VIP in Oracle Clusterware (文档 ID 276434.1)
APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.3 to 12.1.0.2 [Release 11.2 to 12. ...
- jQuery与Ajax
Ajax简介 : Asynchronous Javascript And XML (异步的JavaScript和XML) AJAX 不是新的编程语言,而是一种使用现有标准创建快速动态网页的技术. 通过 ...
- DFS与BFS
顾名思义,DFS就是一直在一个方向搜索,当这一方向不可以时退回该点,换下一方向: 而BFS一开始就是向四面八方搜索,把符合条件的点存入队列中,当前一个点都搜索完毕时,再从队列顶中取出点,再向四面八方搜 ...
- Windows 2008 IIS7.0安装FTP教程 IIS7.5 配置多用户FTP
一. 安装IIS.右键[我的电脑],选择[管理]打开. 选择[角色],选择[添加角色]打开. 二. 配置DOS.输入: CACLS "%Syste ...