Facebook canShareVia在不应该调用成功回调时调用它-iOS 11.2

Facebook canShareVia在不应该调用成功回调时调用它-iOS 11.2,facebook,cordova,cordova-plugins,phonegap,socialshare,Facebook,Cordova,Cordova Plugins,Phonegap,Socialshare,说明 当Facebook应用程序未安装时,canShareVia方法应调用错误回调,这与运行iOS 10的iPhone5s完美配合 当我在运行iOS 11.2的iPhone5s上测试它时,无论Facebook应用是否安装,它都会调用成功回调 应用程序 Cordova移动应用程序 插件: 设备信息 iphone5s iOS 11.2 Facebook应用程序:未安装 示例代码 window.plugins.socialsharing.canShareVia('com.apple.social.

说明

当Facebook应用程序未安装时,canShareVia方法应调用错误回调,这与运行iOS 10的iPhone5s完美配合

当我在运行iOS 11.2的iPhone5s上测试它时,无论Facebook应用是否安装,它都会调用成功回调

应用程序

Cordova移动应用程序

插件:

设备信息

  • iphone5s
  • iOS 11.2
  • Facebook应用程序:未安装
示例代码

window.plugins.socialsharing.canShareVia('com.apple.social.facebook', 'msg', null, null, null, 
function(success) {
   do some stuff....
}, function(error) {
   alert(error); 
});
请让我知道,如果有任何工作已经找到


已更新

找到原因:

自iOS11以来,这始终返回true。因此,我们可能需要另一种方法来检测是否有已安装且可用的应用程序

让它一起工作

您可以通过这种方式实现(Appavailability插件用于检查Facebook应用程序可用性,社交共享插件用于实际共享)


虽然这是一个解决方案,但不是修复方案,但在修复方案合并到之前,这是目前唯一的方法。

您可以在此处找到问题的答案。 . 读了这篇文章,你的要求将是小菜一碟

appAvailability.check(
    'fb://',
    function() {  // Success callback
        window.plugins.socialsharing.shareViaFacebook(...)
    },
    function() {  // Error callback
        console.log('Facebook App is not available');
    }
);