确定是不是从 Unity 安装 Facebook 应用

Posted

技术标签:

【中文标题】确定是不是从 Unity 安装 Facebook 应用【英文标题】:Determining if Facebook app is installed from Unity确定是否从 Unity 安装 Facebook 应用 【发布时间】:2015-03-06 19:22:06 【问题描述】:

我们正在使用 Facebook SDK for Unity (v6.0),我现在想知道是否有方法可以检查设备上是否安装了 Facebook 应用程序。

原因是 Facebook SDK 中的一个现有错误(请参阅此处:bug)

我想确定这种情况(仅在安装 FB 应用程序时发生),并做出相应的反应。

【问题讨论】:

非常确定您需要为此使用本机代码,因此如果您在这里没有得到任何答案,您可以尝试提出更一般的问题(或寻找现有问题),例如“ios,检测是否安装了其他应用程序?”或“iOS,检测是否安装了 Facebook?”.. 如果您还不知道如何为 Unity 编写本机插件,请研究如何编写。 这有帮助吗? forum.unity3d.com/threads/… 检查格雷厄姆的答案。我不使用 iOS,所以我不知道这是否真的回答了这个问题。 您可以使用本机插件检查它,但它是特定于平台的。我可以帮助你使用 android,但不知道如何在 iOS 上实现它。 我已经提出了这个问题。因为没有人真正尝试检查是否会工作。您无法在 Unity3D 引擎中进行实际测试,因为它没有安装在 Android 中,而 Unity3D Remote 只是您在 android 中获得的流镜像。所以这确实是一个有趣的问题。 How to detect if Facebook app is installed on iOS? 的可能副本 【参考方案1】:

"要使用原生插件,首先需要编写函数 使用基于 C 的语言来访问您需要的任何功能并进行编译 他们进入图书馆。在 Unity 中,您还需要创建一个 C# 调用本机库中的函数的脚本。” 来自http://docs.unity3d.com/Manual/NativePlugins.html

所以,基本上你需要用 Objective-C 编写代码,并提供 Unity 和 Native Code 之间的通信。

检查Facebook APP需要实现的代码是;

(void) checkFacebookApp

   if ([[UIApplication sharedApplication] canOpenURL:[NSURLURLWithString:@"fb://"]])   
   
      return true;
   

但是,您需要在 Unity 和 Xcode 项目之间进行一些通信。所以;

 class SomeScript : MonoBehaviour 

   #if UNITY_IPHONE || UNITY_XBOX360

   // On iOS and Xbox 360 plugins are statically linked into
   // the executable, so we have to use __Internal as the
   // library name.
   [DllImport ("__Internal")]

   #else

   // Other platforms load plugins dynamically, so pass the name
   // of the plugin's dynamic library.
   [DllImport ("PluginName")]

   #endif

   private static extern float checkFacebookApp ();

   void Awake () 
      // Calls the FooPluginFunction inside the plugin
      // And prints 5 to the console
      bool check = checkFacebookApp ();
   

【讨论】:

以上是关于确定是不是从 Unity 安装 Facebook 应用的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Unity SDK iOS 登录不使用系统级登录,而是使用浏览器或 Facebook 应用程序

Facebook Android SDK 仅在安装本机应用程序时工作

Facebook UNITY SDK 登录问题

Facebook Unity SDK 测试用户登录

Unity Facebook 接受来自 URL 的邀请?

如何确定 Firebase 用户是不是使用 facebook 身份验证登录