我正在尝试测试MyApp(CanOpen)中是否存在应用程序。如果是这样,我希望打开应用程序,否则我有一个https地址来打开webview。我在can open test上获得了错误的回报。我相信我的代码是合理的,但我不确定info.plist。我有一个MyApp的url类型(在info.plist中)。我有另一个应用程序(健康)的LSApplicationQueriesSchemes条目,但不确定该引用如何绑定到实际的应用程序....非常感谢任何帮助:
MyApp PCL中的是以下界面:
public interface IAppHandler
{
Task<bool> LaunchApp(string uri);
}
在模型视图中,我向实际处理程序调用deoendency:
string appid = @"health://";
var result = await DependencyService.Get<IAppHandler>().LaunchApp(appid);
if (!result)
{
Show_WebView(url);
}
在特定于平台的AppHandler中:
public Task<bool> LaunchApp(string uri)
{
try
{
var canOpen = UIApplication.SharedApplication.CanOpenUrl(new NSUrl(uri));
if (!canOpen)
return Task.FromResult(false);
return Task.FromResult(UIApplication.SharedApplication.OpenUrl(new NSUrl(uri)));
}
catch (Exception ex)
{
return Task.FromResult(false);
}
}
在info.plist中:
<key>CFBundleURLSchemes</key>
<array>
<string>MyApp</string>
<string>com.apple.Health</string>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>health</string>
</array>