确定是否从Unity安装了Facebook应用程序

时间:2015-01-08 15:53:35

标签: ios unity3d facebook-unity-sdk

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

原因是Facebook SDK中存在一个错误(请参阅此处:bug

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

1 个答案:

答案 0 :(得分: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 ();
   }
}