离子Cordova appAvailability总是返回false

时间:2018-05-23 15:34:26

标签: cordova ionic-framework ionic-native

在我的离子应用程序中,我需要检查id 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
      );

我两个人总是“假”。应用程序已安装。我尝试在离子开发应用程序内部以及在realIOS设备上使用真实应用程序。

2 个答案:

答案 0 :(得分:2)

我在某个地方的另一个答案中看到了它,但它确保了plist的更新。这是原始答案,所以如果它有效,我不能因为知道答案而受到赞扬,但希望它有所帮助。

  

编辑plist(platforms / ios / appname / appname-Info.plist)文件   你的应用程序并添加Facebook。

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

有人也注意到它可能只是

<string>fb</string> 
在iOS11中

。但还没有检查过。

答案 1 :(得分:2)

我在Indy-Jones的回答后做了什么:

<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平台;
  • 使用离子开发应用程序无效,您必须测试它构建ios应用程序。