我試圖測試一個應用程序是否存在從MyApp(CanOpen)。如果是這樣,我希望打開該應用程序,否則我有一個https地址來打開webview。我在開放測試中獲得虛假回報。我相信我的代碼是正確的,但我不確定在info.plist上。我有一個url類型(在info.plist中)MyApp。我對其他應用程序(健康)的LSApplicationQueriesSchemes項,但不能確定那參考如何回接到實際應用....任何幫助是極大的讚賞:從Xamarin Forms應用程序啓動另一個IOS應用程序
在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);
}
在T他特定於平臺的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>
您需要註冊您想要打開的應用程序的URLScheme。 –
Shabir,使用捆綁ID?謝謝 – Nick
我錯過了如何將LSApplicationQueriesSchemes綁定到URL類型。 – Nick