iOS app启动另外的app

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gx_wqm/article/details/52165146

在一个app中启动另外的app,这个应用很常见,实现也是很简单的,只需要注册一个URL,然后通过UIApplication的 openURL就可以实现了:

比如 A 启动 B

一、在 B(被启动的app) 中注册URL:

1、找到info.plist并打开,点击Information property list 右边的加号新建一个项,新项的名字改选择URL types,它是一个数组类型,点击其下面的item 0,将下面的URL identifer的值命名为com.company.appName 也就是反域名。

2、点击上面URL identifier右边的加号,新建一个项,名字选择URL Schedules,里面的item 0, 命名一般为appName

至此,在B中的设置完成了, 付个简图:



二、在A(启动别的app),通过openURL启动其他的app

这个就比较简单了,只需要:

    NSURL *appUrl = [NSURLURLWithString:@"FRC://"]; //这里的参数(FRC则这里是FRC://)对应URL Schemes item0的值

    if ([[UIApplicationsharedApplication] canOpenURL:appUrl]) {

        [[UIApplicationsharedApplication] openURL:appUrl];

    }

这样就可以了。

另外如果你需要向B,也就是被启动的app专递参数的话也是可以的,只需要在URL的后面添加所需的参数即可(eg:FRC://123

然后在A的APPDelegate添加的:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL*)url {

    returnYES;

}

就可以获得参数了。
展开阅读全文

ios::out|ios::app

06-03

单独以ios::out打开的文件会将文件内容清空,ios::out|ios::app这个组合还会将上一次文件内容清空么?我试了一下,rnvoid CFScoreDlg::OnAddFScore() rnrn // TODO: Add your control notification handler code herern CListBox* pDictDataListBox = (CListBox*)GetDlgItem( IDC_LIST3 );rn CListBox* pFdeallogListBox = (CListBox*)GetDlgItem( IDC_LIST1 );rn int index = pDictDataListBox->GetCurSel();rn int index1 = m_DataType.GetCurSel();rn m_DataType.GetLBText(index1,str);rn rn char FileName[200];rn sprintf( FileName, "%sOutText\\FScore.txt", GetAppPath() );rn ofstream of( FileName, ios::out|ios::app );rnrn if( index != -1)rn rn if(strcmp(str,"变位的开关")==0)rn rn DATADICT* pDATADICT = (DATADICT *)(pDictDataListBox->GetItemData( index ));rn pDictDataListBox->DeleteString( index);rn index = pFdeallogListBox->AddString( pDATADICT->NameExp3 );rn of << pDATADICT->NameExp3 << endl;rn pFdeallogListBox->SetItemData( index, (DWORD)pDATADICT);rnrn rnrn if(strcmp(str,"失压的工作母线")==0)rn rn PTTYPE* PT=(PTTYPE *)(pDictDataListBox->GetItemData( index ));rn pDictDataListBox->DeleteString( index);rn index = pFdeallogListBox->AddString( PT->PTName );rn of << PT->PTName << endl;rn pFdeallogListBox->SetItemData( index, (DWORD)PT);rnrn rnrn if(strcmp(str,"电流、有功、无功指示为0的间隔")==0)rn rn MEASURE* TT=(MEASURE *)(pDictDataListBox->GetItemData( index ));rn pDictDataListBox->DeleteString( index);rn index = pFdeallogListBox->AddString( TT->CTName );rn of << TT->CTName << endl;rn pFdeallogListBox->SetItemData( index, (DWORD)TT);rnrn rn rn rnrn of.close();rnrnrnrnrnrnFScore.txt中的内容每一次都是追加的方式写入的。难道是不清空以前的内容了么?甚是疑惑!rn 论坛

没有更多推荐了,返回首页