Search code examples
unity-game-enginefacebook-unity-sdk

How to detect if WebGL is on Facebook Canvas


Im currently facing an issue where I am using the Facebook plugin v.7.1.0 for Unity. Im distributing through WebGL, but my app needs to be running both on Facebook, but also outside Facebook. When using FB.Init I get a successful callback, which is what I used to use for testing whether on Facebook canvas or not when deploying for WebPlayer.

So my question is, how do I detect whether the WebGL player is on the facebook canvas or not?


Solution

  • In Unity's WebGL, you can communicate with javascript. link

    So, I call a javascript function to check current url by

    C#

    Application.ExternalCall("GetCurrentUrlType");
    

    JS

    function GetCurrentUrlType(){
      var url = document.URL;
      if (url.indexOf("apps.facebook.com") > -1)
        SendMessage("GameObject", "CheckURL", "facebook");
    }
    

    Hope this help!!!