Android平台:
根据包名启动(方案之一),有安装则启动,否跳转下载地址
public static void OpenGameByPackage(String packageStr) {
if(isAvilible(MainActivity.getContext(), packageStr)){
PackageManager packageManager = MainActivity.getContext().getPackageManager();
Intent intent= packageManager.getLaunchIntentForPackage(packageStr);
if(intent!=null)
{
MainActivity.getContext().startActivity(intent);
}
else
{
Log.i("Tag","OpenGameByPackage:" + "该功能未开放,敬请期待");
}
}
//未安装,跳转至market下载该程序
else{
Uri uri = Uri.parse("http://www.baidu.com/");
// 直接从指定网址下载
// Uri uri = Uri.parse("http://dldir1.qq.com/foxmail/weixin521android400.apk");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
if(intent!=null)
{
MainActivity.getContext().startActivity(intent);
}
else
{
Log.i("Tag","OpenGameByPackage:" + "该功能未开放,敬请期待");
}
}
}
Ios平台处理:
1.注册自己的URL
新建一个工程MyAppOne,在info.plist 文件中添加字段,注册 MyAppOne的URL.
1.1在 Information Property List中,点击“+” 添加 URL types,添加一个Item,再在Item中,添加“URL Schemes”,再在URL Schemes的Item中,添加一个字符串“AppDemo1”(参考下图),该字符串 即为 当前 工程 MyAppOne 自己 为自己注册的 URL。注册自己的URL完成。
1.2我们刚才注册的自己的URL,就相当于我们当前的工程MyAppOne的一个身份标识。其他app通过ios提供的接口(后面会介绍是ios 的哪个函数),调用这个URL就能启动我们这个MyAppOne应用程序了。
2. 白名单 LSApplicationQueriesSchemes
在ios9以后,需要在info.plist文件中添加 LSApplicationQueriesSchemes(白名单),才能合法启动你想要启动的那个app。白名单中添加的,是你想要启动的app的 URL(这个URL就是上面讲解的“注册自己的URL”)。
2.1 添加 LSApplicationQueriesSchemes。(当前的工程是xcode7.3.1,xcode没有自动匹配 LSApplicationQueriesSchemes,因此,需要你手动输入这个字段,并将它的属性改为【Array】),在 LSApplicationQueriesSchemes 中添加“AppDemo2”。
我们假设已经有一个MyAppTwo,它注册的URL是 AppDemo2。我们想在MyAppOne工程去启动的MyAppTwo这个app,就需要在白名单中添加MyAppTwo的URL。
3.MyAppOne 启动 另一个App的关键代码
3.1 字符串AppDemo2后面的 "://"是必须添加的,否则会 无法打开你指定的app的URL的。
3.2 代码介绍了 无参URL和有参URL。如果想传递参数,在“://”后面附加这些参数即可。
1 //// 用户 按下 按钮********* 请参考 ViewController.m 文件中的代码 2 - (IBAction)Btn1Click:(id)sender { 3 NSLog(@"MyAppOne: You click the button1111."); 4 char szbuff[50] = {0}; 5 sprintf(szbuff, "%s", "AppDemo2://userName=heliang&pwd=20160812"); 6 /// 1.不带参数的传递方式 7 // NSURL* urlLocal = [NSURL URLWithString:@"AppDemo2://"]; 8 /// 2.带参数的传递方式 9 NSURL* urlLocal = [NSURL URLWithString:[NSString stringWithUTF8String:szbuff]]; 10 11 // 判断是否可以启动该 url 12 if([[UIApplication sharedApplication] canOpenURL:urlLocal]) 13 { 14 [[UIApplication sharedApplication] openURL:urlLocal]; 15 NSLog(@"launch AppDemo2 success!"); 16 } 17 else 18 { 19 NSLog(@"No such url."); 20 /// 跳到 appStore 某个 app 21 NSURL* urlAppStore = [NSURL URLWithString:@"https://itunes.apple.com/cn/app/tie-lu12306/id564818797?mt=8"]; 22 [[UIApplication sharedApplication] openURL: urlAppStore]; 23 } 24 }
3.3至此,已经介绍完如何从一个app1启动另一个app2了。
步骤如下:
①app2在info.plist的URL Schemes中 注册自己的URL
②app1在info.plist的【白名单】中添加 app2注册的 URL
③app1中调用 [UIApplication sharedApplication] openURL:urlLocal]; 方法,启动 app2。(可以参考链接中的demo,进行进一步的理解。)
IOS转载:http://www.cnblogs.com/MasterOogway/p/5774834.html