2015-10-07 4 views
2

Im в настоящее время сталкивается с проблемой, когда я использую плагин Facebook v.7.1.0 для Unity. Я распространяю через WebGL, но мое приложение должно работать как на Facebook, так и вне Facebook. При использовании FB.Init я получаю успешный обратный вызов, который я использовал для тестирования на холсте Facebook или нет при развертывании для WebPlayer.Как определить, есть ли WebGL на Facebook Canvas

Итак, мой вопрос в том, как определить, является ли проигрыватель WebGL на холсте facebook или нет?

ответ

2

В WebGL Unity вы можете общаться с javascript. link

Итак, я вызываю функцию яваскрипта, чтобы проверить URL на

C#

Application.ExternalCall("GetCurrentUrlType"); 

JS

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

Надежда эта помощь !!!

3

Это решение опубликовано только для тех, кто хотел бы получить то же решение, что и я.

Решение было использовать jslib плагин, как описано здесь http://docs.unity3d.com/Manual/webgl-interactingwithbrowserscripting.html

var FacebookCanvasChecker = { 
    GetSite: function() 
    { 
     var url = document.URL; 
     var returnStr = ""; 
     if (url.indexOf("apps.facebook.com") > -1) 
      returnStr = "facebook"; 
     else 
     { 
      // try with referer 
      if(document.referrer) 
      { 
       url = document.referrer; 
       if (url.indexOf("apps.facebook.com") > -1) 
        returnStr = "facebook"; 
       else 
        returnStr = url; 
      } 
      else 
       returnStr = url; 
     } 

     var buffer = _malloc(returnStr.length + 1); 
     writeStringToMemory(returnStr, buffer); 
     return buffer; 
    } 
}; 

mergeInto(LibraryManager.library, FacebookCanvasChecker); 
Смежные вопросы