Ионная Cordova appAvailability всегда возвращать false - PullRequest
0 голосов
/ 23 мая 2018

В моем ионном приложении мне нужно проверить, установлены ли на устройстве приложения Facebook и Twitter.Для этого я установил AppAvailability и следовал инструкциям:

let twitter = '';
let facebook = '';

if (this.plt.is('ios')) {
  twitter = 'twitter://';
  facebook = 'fb://';
} else if (this.plt.is('android')) {
  twitter = 'com.twitter.android';
  facebook = 'com.facebook.katana';
}

    this.appAvailability.check(twitter)
      .then(
        (yes: boolean) => this.isTwitterAvailable = true,
        (no: boolean) => this.isTwitterAvailable = false
      );
    this.appAvailability.check(facebook)
      .then(
        (yes: boolean) => this.isFacebookAvailable = true,
        (no: boolean) => this.isFacebookAvailable = false
      );

Я всегда получаю «ложь» для обоих.Приложения установлены.Я попробовал внутри приложений ionic dev, а также с реальным приложением на устройстве realIOS.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Что я сделал после ответа Инди-Джонса:

<platform name="ios">
...

  <edit-config file="*-Info.plist" mode="merge" target="LSApplicationQueriesSchemes"> 
    <array> 
      <string>twitter</string>
      <string>fb</string>
      <string>instagram</string>
    </array> 
  </edit-config>

....


</platform>

это создаст запись в файле plist.Примечание:

  • в моем случае plist не обновлялся.Я удалил и добавил платформу ios;
  • это не работает с приложением ionic dev, вам нужно протестировать его при создании приложения ios.
0 голосов
/ 23 мая 2018

Я видел это в другом ответе где-то, но это было что-то о том, чтобы убедиться, что plist был обновлен.Здесь был оригинальный ответ, поэтому, если он работает, я не могу взять кредит за знание ответа, но надеюсь, что это поможет.) файл для вашего приложения и добавьте facebook.

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>facebook</string>
</array>

Кто-то также заметил, что это может быть просто

<string>fb</string> 

в iOS11.но еще не проверял.

...