html VK WebGL запросы

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

html VK WebGL запросы

Сообщение elfinik 31 окт 2016, 17:25

Синтаксис:
Используется javascript
<!doctype html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Unity WebGL Player | testWS</title>
    <link rel="stylesheet" href="TemplateData/style.css">
    <link rel="shortcut icon" href="TemplateData/favicon.ico" />
    <script src="TemplateData/UnityProgress.js"></script>
        <script type="text/javascript" src="http://vkontakte.ru/js/api/xd_connection.js?2"></script>
                <script type="text/javascript">
        VK.init(function(){
       
       
        alert('vk initialized');
       
        VS.addCallback('onWindowBlur',function(settings){UnityHide();});
                VS.addCallback('onWindowFocus',function(settings){UnityShows();});
        });
        function GetUnity()
        {
        return u.getUnity();    
        }
        function UnityShows(){
                GetUnity().style.visibility='visible';
        }      
                function UnityHide(){
                GetUnity().style.visibility='hidden';
        }      
        function SendToPlayer(func,what)
        {
        GetUnity().SendMessage("SocialManager",func,what);
        }
        function GetParams()
        {
        alert(document.location.href+'');
        SendToPlayer("RecvParams",document.location.href+'');
        }
        function GetProfile(uid)
        {
        VK.api('getProfiles',{uids:uid,friends: 'first_name,photo,last_name'},function(data))
        {
        var Fname="';
        var Lname="
";
        var Photo="
";
        if(data.response)
        {
        Fname=data.response[0]['first_name'];
                Lname=data.response[0]['last_name'];
                Photo=data.response[0]['photo'];
                var Profile=[uid,Fname,Lname,Photo];
               
                SendToPlayer("
OnGetPlayer",""+Profile);
        }
       
       
       
        };
       
       
        }
        </Script>
  </head>
  <body class="
template">
    <p class="
header"><span>Unity WebGL Player | </span>testWS</p>
    <div class="
template-wrap clear">
      <canvas class="
emscripten" id="canvas" oncontextmenu="event.preventDefault()" height="600px" width="960px"></canvas>
      <br>
      <div class="
logo"></div>
      <div class="
fullscreen"><img src="TemplateData/fullscreen.png" width="38" height="38" alt="Fullscreen" title="Fullscreen" onclick="SetFullscreen(1);" /></div>
      <div class="
title">testWS</div>
    </div>
    <p class="
footer">&laquo; created with <a href="http://unity3d.com/" title="Go to unity3d.com">Unity</a> &raquo;</p>
    <script type='text/javascript'>
  var Module = {
    TOTAL_MEMORY: 268435456,
    errorhandler: null,                 // arguments: err, url, line. This function must return 'true' if the error is handled, otherwise 'false'
    compatibilitycheck: null,
    dataUrl: "Release/dsawqd.data",
    codeUrl: "Release/dsawqd.js",
    memUrl: "Release/dsawqd.mem",
   
  };
</script>
<script src="Release/UnityLoader.js"></script>

  </body>
</html>
 

http://devby.ru/afrokick/2014/02/24/uni ... -s-vk.html
Здравствуйте. Делал всё по уроку (после того, как библиотека TrueVK оказалась, не совсем, рабочая), но ошибка "...GetParams is not Defined" выскакивает после загрузки. Ткните пожалуйста в проблему. А то я уже неделю сижу с этой игрой, узнаю много нового (полная Ж) о ВК, причем не из документации [curved_hands] , и из-за этого могу сильно тупить и не видеть ошибку :( i-) .
https://vk.com/app5697712_97299667

Возможно, для WebGL нужно немного другое?
Последний раз редактировалось elfinik 31 окт 2016, 19:02, всего редактировалось 1 раз.
elfinik
UNIверсал
 
Сообщения: 390
Зарегистрирован: 24 фев 2013, 20:03

Re: PHP VK WebGL запросы

Сообщение ikhtd 31 окт 2016, 18:41

1. почему тема называется php? я в сообщении не увидел упоминания php

2. в скрипте я увидел что используется код из ВК API для unity web player. java script конечно пашет что для веб плеера , что для webGL. но там куски кода где инициализируется веб плеер, которого в webGL нет.

3. опишите что вы хотите получить, какую функцию вк АПИ хотите видеть рабочей.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Старожил
 
Сообщения: 968
Зарегистрирован: 24 мар 2014, 12:20

Re: PHP VK WebGL запросы

Сообщение elfinik 31 окт 2016, 19:00

1. Видимо, моя ошибка. Я html/java никогда не занимался. Код выше очень похож (для меня) на php. Изменил на html
3. Мне нужны только 1 функция. 1- получить ID пользователя.
Но, зная одну, остальные постараюсь сам дописать.
Можете написать пример вызова функции для получения ID пользователя и ее возвращения? Примеров для webGL я не нашел.
Не мой это профиль. Купил, даже, в asset store TrueVK, а она работает криво. Жаль.
elfinik
UNIверсал
 
Сообщения: 390
Зарегистрирован: 24 фев 2013, 20:03

Re: html VK WebGL запросы

Сообщение ikhtd 31 окт 2016, 19:14

id также как для вебплеера с header снимается

Код: Выделить всё
сначала инициализирууем вк

<script src="https://vk.com/js/api/xd_connection.js?2" type="text/javascript"></script>


затем парсим с адреса

<script type="text/javascript">

var parts=document.location.search.substr(1).split("&");
    var flashVars={}, curr;
    for (i=0; i<parts.length; i++) {
        curr = parts[i].split('=');
        flashVars[curr[0]] = curr[1];
    }

    var viewer_id = flashVars['viewer_id'];
    var auth_key = flashVars['auth_key'];

//alert(viewer_id);

var user_name;

VK.api("users.get",{uids:viewer_id} ,function (data)
{
  user_name = data.response[0].first_name;
   //alert(user_name);
     SendMessage("vkAPI", "sendfirst", user_name);
   
  });

SendMessage("vkAPI", "sendid", viewer_id);

}
</script>



там еще и получение имени
и разумеется передача параметра в юнити
SendMessage("vkAPI", "sendid", viewer_id);


метод users.get смотреть в справке по АПИ для javascript. и там еще можно много параметров вытянуть кроме имени
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Старожил
 
Сообщения: 968
Зарегистрирован: 24 мар 2014, 12:20

Re: html VK WebGL запросы

Сообщение ikhtd 31 окт 2016, 19:24

там еще в вебгл- то ли этот скрипт в тэге head не хочет давать имя - то ли в body. короче пробовать вставить второй скрипт или в head или в body. первый скрипт однозначно в head.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Старожил
 
Сообщения: 968
Зарегистрирован: 24 мар 2014, 12:20

Re: html VK WebGL запросы

Сообщение elfinik 31 окт 2016, 21:55

Спасибо, буду пробовать.
elfinik
UNIверсал
 
Сообщения: 390
Зарегистрирован: 24 фев 2013, 20:03

Re: html VK WebGL запросы

Сообщение DbIMok 31 окт 2016, 22:34

и не обязательно это в html писать, можно прям в юнити
Синтаксис:
Используется csharp
using UnityEngine;

public class TestVK : MonoBehaviour {
        private Rect rectTop = new Rect(5f, 5f, 700f, 300f);
        private Rect rectBottom = new Rect(5f, 310f, 700f, 150f);
        private Rect rectButton = new Rect(5f, 470f, 50f, 30f);
        private string script = @"VK.loadParams(document.location.href);
        var viewer_id = VK.params.viewer_id;
        var result = '';
        VK.api('users.get',{fields: '', user_ids: viewer_id}, function(data) {
                if (data.response) {
                        result = viewer_id + '\n' + data.response[0].first_name;
                }
                SendMessage('Main Camera', 'OnGetParam', result);
        });"
;
        private string response = "";
        private string textButton = "Send";

        void OnGUI() {
                script = GUI.TextArea(rectTop, script);
                response = GUI.TextArea(rectBottom, response);
                if (GUI.Button(rectButton, textButton)) {
                        response = "";
                        Application.ExternalEval(script);
                }                              
        }

        private void OnGetParam(string param) {
                response = param;
        }
}

повесить скрипт на объект 'Main Camera'. использовать JSON.stringify для передачи сложных структур
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > Telegram чат @unity3d_ru (4800+) > Telegram канал @unity_news (1900+) > Telegram тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 5996
Зарегистрирован: 31 июл 2009, 14:05

Re: html VK WebGL запросы

Сообщение elfinik 01 ноя 2016, 11:46

Всем спасибо. Разобрался с обоими способами. Сделал логин и (пока что) тестовые покупки голосов (опять пол дня искал, что нужно на IIS php установить отдельно).
elfinik
UNIверсал
 
Сообщения: 390
Зарегистрирован: 24 фев 2013, 20:03


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 33