我正在尝试从MyApp(CanOpen)测试应用程序是否存在。如果是,则希望打开该应用程序,否则我有一个https地址可以打开Web视图。在can open测试中,我得到了false返回。我相信我的代码很好,但我不确定info.plist。我在info.plist中有一个url类型(对于MyApp)。我为其他应用程序(health)设置了LSApplicationQueriesSchemes条目,但不确定该引用如何与实际应用程序联系起来...非常感谢您的帮助:
在MyApp PCL中,以下接口是什么:
在模型视图中,我正在进行对实际处理程序的依赖调用:
在特定平台的AppHandler中:
在MyApp PCL中,以下接口是什么:
public interface IAppHandler
{
Task<bool> LaunchApp(string uri);
}
在模型视图中,我正在进行对实际处理程序的依赖调用:
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>