В моем приложении Xamarin Forms я хочу открыть другое приложение, нажав кнопку. Пример с приложением facebook, но он должен работать и с другими приложениями. Я много читал об этом здесь и здесь. На основе двух решений/ссылок я создал класс в своем проекте iOS:
[assembly: Xamarin.Forms.Dependency(typeof(OpenAppiOS))]
namespace FieldServicePortable.iOS.Common
{
public class OpenAppiOS : IOpenApp
{
public OpenAppiOS() { }
public void OpenExternalApp()
{
var nsurl = "facebook://";
var request = new NSUrl(nsurl);
try
{
var isOpened = UIApplication.SharedApplication.OpenUrl(request); //Open App
}
catch (Exception ex)
{
throw ex;
}
}
}
}
Я также расширил Info.plist
этими строками
<key>LSApplicationQueriesSchemes</key>
<array>
<string>facebook</string>
</array>
Я не хочу беспокоить вас частью кода в общих проектах, потому что эта часть работает.
После нажатия кнопки в приложении код будет выполнен, но ничего не произойдет. Даже исключение не выбрасывается. Значение переменной isOpened
равно false
.
Итак, мои вопросы:
- Конечно, я что-то упускаю в своем коде?
- Есть ли требования к приложению, которое должно быть открытым?
- Нужна ли какая-то настройка в iOS?