单击按钮打开已安装的应用程序
Open an installed app by click on button
我的应用程序名为 Labmed,其中会出现一个按钮,用于打开“LAB Befund”应用程序。
如果已安装“LAB Befund”,请打开应用程序,而不是转到 AppStore。
代码:
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:ltvController forKey:@"LAB Befund"];
[array addObject:dic];
NSString *LABAppURL = "LAB Befund://openApp?param1=XXX¶m2=YYY";
NSString *LABWebURL = @"https://itunes.apple.com/de/app/lab-befund/id1019115877?mt=8";
BOOL canOpenURL = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:LABWebURL]];
NSLog(@"can open: %d", canOpenURL);
NSString *url = canOpenURL ? LABAppURL : LABWebURL;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
到目前为止,这是我在 Internet 上找到的内容。
它每次都打开 Appstore,因为安装了该应用程序。
我在我的 .plist 中添加了以下语句:
URL types
Item0
URL Schemes
Item0
URL Identifier
CanOpenURL return“否”。
结论:
假设有两个应用程序 TestA 和 TestB。 TestB 想查询是否安装了 TestA。 “TestA”在其 info.plist 文件中定义了以下 URL 方案:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>testA</string>
</array>
</dict>
第二个应用程序“TestB”尝试通过调用以下方式确定是否安装了“TestA”:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"TestA://"]];
但这在 iOS9 中通常会 return 否,因为“TestA”需要添加到 TestB 的 info.plist 文件中的 LSApplicationQueriesSchemes 条目中。这是通过将以下代码添加到 TestB 的 info.plist 文件来完成的:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>TestA</string>
</array>
这就是我的工作方式。
您必须将 LABAppURL
中的 "LAB Befund"
替换为您在 Info.plist 中输入的处理程序(URL 架构) LAB Befund 的。
我的应用程序名为 Labmed,其中会出现一个按钮,用于打开“LAB Befund”应用程序。 如果已安装“LAB Befund”,请打开应用程序,而不是转到 AppStore。
代码:
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:ltvController forKey:@"LAB Befund"];
[array addObject:dic];
NSString *LABAppURL = "LAB Befund://openApp?param1=XXX¶m2=YYY";
NSString *LABWebURL = @"https://itunes.apple.com/de/app/lab-befund/id1019115877?mt=8";
BOOL canOpenURL = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:LABWebURL]];
NSLog(@"can open: %d", canOpenURL);
NSString *url = canOpenURL ? LABAppURL : LABWebURL;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
到目前为止,这是我在 Internet 上找到的内容。 它每次都打开 Appstore,因为安装了该应用程序。
我在我的 .plist 中添加了以下语句:
URL types
Item0
URL Schemes
Item0
URL Identifier
CanOpenURL return“否”。
结论: 假设有两个应用程序 TestA 和 TestB。 TestB 想查询是否安装了 TestA。 “TestA”在其 info.plist 文件中定义了以下 URL 方案:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>testA</string>
</array>
</dict>
第二个应用程序“TestB”尝试通过调用以下方式确定是否安装了“TestA”:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"TestA://"]];
但这在 iOS9 中通常会 return 否,因为“TestA”需要添加到 TestB 的 info.plist 文件中的 LSApplicationQueriesSchemes 条目中。这是通过将以下代码添加到 TestB 的 info.plist 文件来完成的:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>TestA</string>
</array>
这就是我的工作方式。
您必须将 LABAppURL
中的 "LAB Befund"
替换为您在 Info.plist 中输入的处理程序(URL 架构) LAB Befund 的。