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

canShareVia invokes the success callback when it should not - iOS 11.2

描述

未安装 Facebook 应用程序时,canShareVia 方法应调用错误回调,这与我的 iPhone5s 运行 iOS 10.

完美配合

当我在 iPhone5s 运行 iOS 11.2 上测试它时,它总是在安装和未安装 Facebook 应用程序的情况下调用成功回调。

应用程序

Cordova 移动应用程序

插件:https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin

设备信息

示例代码

window.plugins.socialsharing.canShareVia('com.apple.social.facebook', 'msg', null, null, null, 
function(success) {
   do some stuff....
}, function(error) {
   alert(error); 
});

如果找到解决方法,请告诉我。


已更新

找到原因:

This plugin always returns true since iOS11. So we might need another way to detect if there is an app installed and available.

让它与 cordova-plugin-appavailability 一起工作。

您可以通过这种方式实现(Appavailability 插件检查 Facebook 应用可用性,社交分享插件进行实际分享)。

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

虽然这是一种解决方法,但不是修复方法,这是目前唯一的方法,直到修复程序合并到 cordova-plugin-x-socialsharing

您可以在这里找到问题的答案。 App Availability。 阅读本文,您的要求将变得轻而易举。