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的更多相关文章

  1. Android 一个app启动另一个app

    最近,一个app启动另一个app,这个玩法挺火的嘛,有没有试过更新QQ到5.1版本,QQ的健康里面就可以添加其他app,实现从QQ跳转到其他app应用.这个挺好玩的,一下子带来了多少流量啊. 一.先来 ...

  2. ios 一个app启动另一个app

    问题描述:需要从一个ios应用程序中,能启动另一个ios应用程序. 开发环境:xcode7.3.1 关键词:白名单(LSApplicationQueriesSchemes).注册自己的URL Demo ...

  3. SystemUI中监听app启动,修改app中的状态栏背景色

    参考 http://www.2cto.com/kf/201206/137225.html 从Android4.4开始,app可以自定义status bar 背景. 对于一些第三方app定义的状态栏背景 ...

  4. Android 中如何从一个App启动另外一个App(如启动支付界面、启动地图界面、应用商场下载App等场景)

    假定两个App,分别是A和B,当A运行某个功能需要启动B,一种是启动B应用,一种直接进入B的某个Activity.搜了很多资料,没有一个完整的.下面就A--Android5.1.1.B--Androi ...

  5. android 嵌套 apk 从一个apk启动另外一个apk

    a.apk-主应用  b.apk-被启动应用 主要思想:把b.apk放到assets目录下,由于有大小限制(1M),所以改名成b.mp3(因为mp3,jpg,png,mp4等不会检查,不会限制大小), ...

  6. 通过自定义的URL Scheme启动你的App

    iPhone SDK可以把你的App和一个自定义的URL Scheme绑定.该URL Scheme可用来从浏览器或别的App启动你的App. 如何响应从别的App里发给你的URL Scheme申请,由 ...

  7. 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议

    [源码下载] 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议 作者:webabcd 介绍与众不同 windows ...

  8. 重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议

    原文:重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议 [源码下载] 重新想象 Windows 8 Store ...

  9. Android项目实战(二十二):启动另一个APP or 重启本APP

    一.启动另一个APP 目前公司项目需求,一个主APP,需要打开某些小APP,这些小APP是整合了Unity的,但是还是android程序(所有小APP的包名是已知的). 以前没做过,查询了一下实现方法 ...

随机推荐

  1. JAVA 理解封装的概念,private私有的,public公有的

    封装就是把不想或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开. 做法:修改属性的访问权限来限制对属性的访问,并为每一个属性创建一对取值和赋值的方法,用于对这些属性的访问 通过封装,可以在给属性赋 ...

  2. JAVA实例,求用户输入的整数是否是偶数

    题目:用户能输入一个整数,输入后返回是偶数还是奇数. 偶数规则:除以2能整除的数称之为偶数,否则是奇数 实例: switch版 import java.util.Scanner; public cla ...

  3. 安装java开发环境jdk,安装JDK

    JDK可以理解为翻译官,它将Java高级语言翻译为二进制执行. JDK可以编译文件,编译后的文件扩展名为.class. 只要能支持JDK的地方,JAVA就可以运行,这就是JAVA跨平台的性质. 我的是 ...

  4. xss 和 csrf攻击详解

    在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 已经成了普遍用法,我们已经离 SQL 注入很远了.但是,历史同 ...

  5. ui与ux的区别

  6. 播放wav聲音格式

    1. #import <AudioToolbox/AudioToolbox.h> 2.聲明 成員变量 SystemSoundID soundID; 3.播放 - (void)playSou ...

  7. Objective-C: 字符串NSString与NSMutableString

    字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,但用法却与之还是有很大的不同,也许是因为OC的语法就 ...

  8. 使用POI读取excel文件内容

    1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...

  9. 《一课经济学》书摘笔记I

    人在经济活动中追求私利的天性,以及天生短视的倾向(即总是只关注某项政策的即时影响,或者只关注政策对某个特殊群体产生的影响,而不去探究那项政策对所有群体造成的长远影响)以上种种致使经济规律的研究复杂艰难 ...

  10. 【cl】sikuli启动不了

    公司电脑:win7+64位 问题:点击sikuli_ide没有反应 卸载了,启动电脑,重新安装.