應(yīng)用程序互相跳轉(zhuǎn)
- 應(yīng)用場(chǎng)景
- 使用第三方用戶(hù)登錄,需要用戶(hù)授權(quán),還需要"返回到調(diào)用的程序铣减, 同時(shí)返回授權(quán)的用戶(hù)名"
- 應(yīng)用程序推廣,網(wǎng)易彩票设预,設(shè)置-推薦應(yīng)用-有很多應(yīng)用程序圖標(biāo)
- 如果本機(jī)已經(jīng)安裝過(guò)徙歼,會(huì)直接跳轉(zhuǎn)到另外一個(gè)應(yīng)用程序
- 軟件的廣告,推廣結(jié)果鳖枕,后續(xù)會(huì)有一些列的金錢(qián)上的結(jié)算
- 支付寶魄梯,第三方支付,淘寶宾符,電話(huà)費(fèi)充值酿秸。。魏烫。
要打開(kāi)本機(jī)上的其他應(yīng)用程序辣苏,需要設(shè)置schemes()肝箱,自定義的協(xié)議頭,可以打開(kāi)其他的應(yīng)用程序
跳轉(zhuǎn)的代碼如下:
- (IBAction)openWangyi:(id)sender
{
//跳轉(zhuǎn)到其他app程序appstore下載界面
//NSURL *url = [NSURL URLWithString:@"http://itunes.apple.com/app/id425349261?mt=8"];
//直接跳轉(zhuǎn)到app,注意格式要正確以及名字(newsapp://)(網(wǎng)易新聞)
NSURL *url = [self getUrl:@"newsapp"];
// 判斷本機(jī)是否安裝了目標(biāo)程序
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
NSLog(@"沒(méi)有安裝稀蟋,可以再給定下載地址煌张,前往");
}
}
- (NSURL *)getUrl:(NSString *)url
{
NSString *urlStr = [NSString stringWithFormat:@"%@://", url];
return [NSURL URLWithString:urlStr];
}
注意:如何獲得app的下載地址以及名字是個(gè)問(wèn)題
- 查找app的下載地址
- 得到應(yīng)用程序的名稱(chēng)以及版本號(hào)
NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
NSString* versionNum =[infoDict objectForKey:@"CFBundleVersion"];
NSString*appName =[infoDict objectForKey:@"CFBundleDisplayName"];
NSString*text =[NSString stringWithFormat:@"%@ %@",appName,versionNum];
新浪微博的授權(quán)界面說(shuō)明:
- 在新浪微博中,本身不能直接跳轉(zhuǎn)到該界面
- 用其他應(yīng)用程序打開(kāi)時(shí)退客,如果scheme時(shí)weibo://oaauth骏融,直接進(jìn)入此界面
- 如果直接點(diǎn)擊,返回萌狂,返回調(diào)用放應(yīng)用程序
- 如果點(diǎn)擊表格行中的用戶(hù)名档玻,直接返回用戶(hù)信息給調(diào)用應(yīng)用程序
- 如果要返回調(diào)用的應(yīng)用程序,需要知道調(diào)用我們的應(yīng)用程序的scheme
/** 只要是由其他應(yīng)用程序打開(kāi)的茫藏,就會(huì)調(diào)用此方法 */
/** URL 就是其他應(yīng)用程序误趴,打開(kāi)當(dāng)前程序使用的URL */
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
/**
openURL 是打開(kāi)當(dāng)前應(yīng)用程序的url
sourceApplication 是當(dāng)開(kāi)當(dāng)前應(yīng)用程序的源程序的BundleId
提示:一旦重寫(xiě)了新方法,舊方法就不再被執(zhí)行
但是:很多第三方框架务傲,都建議兩個(gè)方法全都寫(xiě)
*/
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation