Ekspoint 2,122 Posted August 8, 2016 Как в бою вызвать окно встроенного браузера? Quote Share this post Link to post Short link Share on other sites
aks1983 19 #344753 Posted August 9, 2016 Простым способом никак, в battle.swf нет класса BrowserWindow, который представляет собой окно браузера в лобби, и текстуры нет - LobbyApp_browserBgClassValue. Нужно делать флешку с текстурой и свой контроллер браузера, где реализовать открытие/закрытие/обработку ввода и пр. Наверное, стоит рассказать как работает браузер... # вот так можно открыть браузер в лобби: from gui.game_control import getBrowserCtrl getBrowserCtrl().load(url='http://ya.ru/')(lambda success: True) # более сложный (и правильный) пример: from adisp import process from gui.game_control import getBrowserCtrl @process def showBrowser(): # все аргументы: kwargs = { 'url': 'http://ya.ru/', # адрес, https://example.com 'title': None, # текст заголовка окна 'showActionBtn': True, # показывать кнопку "рефреш/стоп" 'showWaiting': True, # использовать крутящуюся шестерню во время загрузки контента 'browserID': None, # уникальный ID этого бразера, чтобы получать его через BrowserController.getBrowser(browserID) 'isAsync': False, # флаг асинхронности 'browserSize': None, # размер браузера, tuple([width,height]) 'isDefault': True, # флаг нестандартной текстуры 'callback': None, # callback, который получит сгененрированный browserID, если его не было в аргументах 'showCloseBtn': False, # показывать кнопку "закрыть" снизу 'useWhitelisting': False # начиная c 9.15.1 не используется } # пример browser_ctl = getBrowserCtrl() browserID = yield browser_ctrl.load(**kwargs) showBrowser() при этом происходит следующее: Получаем инстанс контроллера браузера BrowserController Вызываем асинхронный метод load() Он создаёт новый инстанс WebBrowser Создаёт каллбек на показ окна BrowserWindow после загрузки страницы Если в настоящий момент происходит создание браузера (ожидание п.2), добавляет создание в очередь WebBrowser представляет собой обертку над BigWorld.WebBrowserProvider - BigWorld.createBrowser(browserID). У этого объекта заполняется аттрибут script, который является подписчиком событий браузера (onAddConsoleMessage, onBeginLoadingFrame, onChangeCursor, onChangeTitle, onDocumentReady, onFailLoadingFrame, onFilterNavigation, onFinishLoadingFrame, onShowCreatedWebView, onWhitelistMiss), настраиваются обработчики кнопок и мыши, устанавливается текстура (имя) для рендеринга контента в неё. 1 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #420011 Posted February 6, 2018 (edited) @aks1983 привет. Стало нужно в окне логина вызвать браузер, но не смог вызвать его даже в лобби. В общем мне лень разбираться) Не подкинешь актуальный код? browserCtrl = dependency.descriptor(IBrowserController) browserCtrl.load(url='http://ya.ru/')(lambda success: True) дает ошибку AttributeError: '_ServiceDescriptor' object has no attribute 'load' Edited February 6, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #420025 Posted February 6, 2018 class BrowserWindow(object): @process def browser(self, url, title, browserSize): yield skeletons.browserCtrl.load(url=url, title=title, browserSize=browserSize, showActionBtn=True, showCloseBtn=True, showWaiting=True) browserWindow = BrowserWindow() Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #420027 Posted February 6, 2018 (edited) @Ekspoint мне все-таки интересно, почему в _ServiceDescriptor есть метод __get__, который игнорится Edited February 6, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #420028 Posted February 6, 2018 1 минуту назад, SkepticalFox сказал: @Ekspoint мне все-таки интересно, почему в _ServiceDescriptor есть метод __get__, который игнорит load посмотрю может косяк картошки... Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #420033 Posted February 6, 2018 10 minutes ago, Ekspoint said: посмотрю я вроде понял. это особенность питона и работы дескриптора __get__ надо, чтобы browserCtrl был членом класса Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #427874 Posted April 13, 2018 в WebBrowser есть executeJavascript, хочу вызвать функцию, а оно ругается что ее нет 'BigWorld.WebBrowserProvider' object has no attribute 'executeJavascript' как быть? мне нужно добавить java код 1 Quote Share this post Link to post Short link Share on other sites
DWG 427 #427930 Posted April 14, 2018 (edited) 20 часов назад, Ekspoint сказал: в WebBrowser есть executeJavascript, хочу вызвать функцию, а оно ругается что ее нет 'BigWorld.WebBrowserProvider' object has no attribute 'executeJavascript' как быть? мне нужно добавить java код Не получиться у тебя если думаешь вставить майнер или проигрывать видосы с рекламой. Внутри игровой браузер java не поддерживает. Edited April 14, 2018 by DWG 3 8 Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #427944 Posted April 14, 2018 4 часа назад, DWG сказал: Не получиться у тебя если думаешь вставить майнер или проигрывать видосы с рекламой. Внутри игровой браузер java не поддерживает. идиот, мне для мода нужно 2 3 Quote Share this post Link to post Short link Share on other sites
SkepticalFox 1,445 #427947 Posted April 14, 2018 (edited) 28 minutes ago, Ekspoint said: идиот, мне для мода нужно попробуй локальный север в питоне создать и общаться с браузером через него хотя, конечно, тут уже от нужд мода стоит ориентироваться Edited April 14, 2018 by SkepticalFox Quote Share this post Link to post Short link Share on other sites
yepev 287 #427948 Posted April 14, 2018 23 часа назад, Ekspoint сказал: в WebBrowser есть executeJavascript, хочу вызвать функцию, а оно ругается что ее нет 'BigWorld.WebBrowserProvider' object has no attribute 'executeJavascript' как быть? мне нужно добавить java код Так javascript или java? Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #427950 Posted April 14, 2018 1 час назад, yepev сказал: Так javascript или java? javascript Quote Share this post Link to post Short link Share on other sites