Прямая ссылка на определенную страницу приложения.

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
Аватара пользователя
vitebsk911
Сообщения: 143
Зарегистрирован: 11 июл 2012, 23:09

Прямая ссылка на определенную страницу приложения.

Сообщение vitebsk911 »

Есть в ВК приложение: Киноклуб - фильмы и сериалы онлайн ( http://vk.com/app1843826 )
И если я хочу другу отправить ссылку на определенный фильм, то без проблем копирую ссылку(к примеру фильм "Кибер"): http://vk.com/app1843826#film/20124 и уже по ссылке такого вида моему другу будет открыта сразу страница с этим фильмом минуя главную страницу приложения[скорее всего при условии что у друга так же установлено данное приложение]

Как такое реализовать: если пользователь уже установил моё приложение и у меня есть страница page1, page2, page3 как мне реализовать ссылки, что бы переходы осуществлялись на эти страницы?
XELAD
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25

Re: Прямая ссылка на определенную страницу приложения.

Сообщение XELAD »

Код: Выделить всё

var hash:String = new String(flashVars.hash);if(hash.length > 0){    var pattern:RegExp = /[\W,_]/gi;     var pass:String = hash.substr(hash.indexOf("/")+1); //всё, что после /    pass = pass.replace(pattern, ""); //затем будут удалены все символы, не входящие в (AZ–, az–, 0-9)    if(hash.indexOf("film/") != -1)    {         trace("Переход на фильм " + pass);    }}
К слову, var flashVars = stage.loaderInfo.parameters as Object;
Аватара пользователя
vitebsk911
Сообщения: 143
Зарегистрирован: 11 июл 2012, 23:09

Re: Прямая ссылка на определенную страницу приложения.

Сообщение vitebsk911 »

Мне необходима такая работа ссылок в IFrame приложении, как я понял это точно не для него...

Напоролся в в одной из тем( https://vk.com/topic-15957347_24263881 ) на такой код:

Код: Выделить всё

 <script type="text/javascript">VK.init(function() {/*var is_app_user = ;if (is_app_user == 0){VK.callMethod('showInstallBox');}*/VK.callMethod('setTitle', 'Панорамы');//VK.Widgets.Recommended('vk_recommend', {limit: 4, max: 10, period: 'month', verb: 1});/*VK.addCallback('onLocationChanged', function (hsh) {if (hsh && hsh != ''){window.location = './show.php?id='+hsh;}});*/});</script> 
опять же автор пишет что не работает, да и силу моего полного непонимания может кто сможет проследить логику и поправить код до его работоспособности?

еще есть кратко в документации но без подробного описания следующее:
https://vk.com/dev/apps_init
hash — hash запроса (данные после символа # в строке адреса).
Аватара пользователя
vitebsk911
Сообщения: 143
Зарегистрирован: 11 июл 2012, 23:09

Re: Прямая ссылка на определенную страницу приложения.

Сообщение vitebsk911 »

РЕШИЛ :D РЕШИЛ 8-) РЕШИЛ :!:

ps: разумеется не без посторонней помощи))) поделюсь, вдруг кому пригодиться...

Задача: Есть index.php который доступен по адресу _vk.com/app123 и есть у приложения другая страница page1.php НЕОБХОДИМО получить ссылку что бы приложение открылось на странице page1.php

Код: Выделить всё

 <?function getVkParams() {    return '&hash='.$_GET['hash'];  //Получаем значение hash(всё что укажите в ссылке после #)} //Далее простая переадресация на страницу if(isset($_GET['hash'])) {  $hash = 'http://САЙТ.by/'.$_GET['hash'];  header('Location: '.$hash);  exit;}?> 
Поставленная мной задача решается: если в строке браузера вставить _vk.com/app123#page1.php то приложение будет открыто на странице page1.php

Дополнительно что смог проверить:
1. Если пользователь ранее не устанавливал приложение и перешел по ссылке вида: _vk.com/app123#page1.php - после нажатия на кнопку "Запустить приложение" ему так же откроется страница page1.php
2. Если воспользоваться сокращением ссылки (vk.cc) из строки _vk.com/app123#page1.php получить _vk.cc/AAbbCC то всё так же работает без проблем...
Аватара пользователя
vitebsk911
Сообщения: 143
Зарегистрирован: 11 июл 2012, 23:09

Re: Прямая ссылка на определенную страницу приложения.

Сообщение vitebsk911 »

Ну раз пошла такая "драка", монолог с самим собой...

Для более корректной работы ссылку в переадресации лучше указывать с протоколом безопасности:

Код: Выделить всё

 $hash = 'http[b]S[/b]://САЙТ.by/'.$_GET['hash'];
Ответить