Прежде всего, вы не разделяли всю свою функцию, поэтому я собираюсь сделать некоторые предположения. Согласно их документам, у iOS есть некоторые причуды.
Итак, обо всем по порядку, давайте посмотрим, что означает ваша ошибка. Согласно их документам:
Если Facebook не установлен, обратный вызов ошибки будет вызван сообщением «недоступен»
Вывод: у вас либо приложение не установлено, либо вы не используете префикс для iOS (см. Ниже)
Отредактируйте config.xml
и добавьте следующее:
<platform name="ios">
<!-- add this entry -->
<config-file platform="ios" target="*-Info.plist" parent="LSApplicationQueriesSchemes">
<array>
<string>facebook</string>
<!-- ...... -->
<string>viber</string>
</array>
</config-file>
</platform>
Для решения ранее упомянутой Причуды, также согласно документам , говорим о shareVia
причудах функций:
iOS: вы ограничены 'com.apple.social. [Facebook | щебетать |
синавейбо | tencentweibo]. Если приложение не существует,
вызывается errorcallback, и iOS показывает всплывающее сообщение, спрашивающее пользователя
настроить приложение.
Прежде всего это означает, что с помощью этой функции shareVia
вы можете делиться только с Facebook, Twitter, Sinaweibo и Tencentweibo (какими бы ни были последние 2)
Во-вторых, это означает, что вам нужно добавить com.apple.social.
до app
В основном настройка prefix = this.platform.is('ios') ? 'com.apple.social.' : '';
с последующим использованием
import { Platform } from '@ionic-angular';
...
shareVia(app) {
// only prefix on ios
let prefix = this.platform.is('ios') ? 'com.apple.social.' : '';
// NOTE: canShareVia doesn't need the prefix!
this.canShareVia(app, .....).then(() => {
// shareVia *does* require the prefix on ios.
// This returns 'not available' if the first parameter provided doesn't match an *installed* app.
this.shareVia(prefix + app, .....)
})
}