Worklight 6.1: проблема в соединении worklight с BB old 6 /7
Я использую worklight 6.2 и создаю пример приложения blackberry 6 /7, но столкнулся с проблемой подключения.
Из-за проблемы с подключением я не могу вызвать адаптер и каждый раз получаю сбой в ответ от адаптера.
Мой фрагмент кода приведен ниже
config.xml
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:rim="http://www.blackberry.com/ns/widgets" version="1.0" rim:backButton="exit">
<name>bb67</name>
<description>bb67</description>
<author email="application author's e-mail">application's author</author>
<feature id="worklightFeature" required="false" version="1.0.0"/>
<feature id="blackberry.ui.dialog" version="1.0.0"/>
<feature id="blackberry.ui.menu" version="1.0.0"/>
<feature id="blackberry.invoke" version="1.0.0"/>
<feature id="blackberry.invoke.BrowserArguments" version="1.0.0"/>
<feature id="blackberry.identity" version="1.0.0"/>
<feature id="blackberry.app" version="1.0.0"/>
<feature id="blackberry.app.event" version="1.0.0"/>
<access subdomains="true" uri="*"/>
<content src="www/skinLoader.html"/>
<icon rim:hover="false" src="icon.png"/>
<rim:loadingScreen backgroundImage="" foregroundImage="splash.png" onLocalPageLoad="false" onFirstLaunch="true"/>
</widget>
Индекс, HTML
<!DOCTYPE HTML><html>
<head>
<meta charset="UTF-8">
<title>bb67</title>
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<!--
<link rel="shortcut icon" href="images/favicon.png">
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
-->
<link href="worklight/worklight.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<script>
// Define WL namespace.
var WL = WL ? WL : {};
/**
* WLClient configuration variables.
* Values are injected by the deployer that packs the gadget.
*/
WL.StaticAppProps = {
"APP_DISPLAY_NAME": "bb67",
"APP_ID": "bb67",
"APP_SERVICES_URL": "http:\/\/192.168.0.222:10080\/bb67\/apps\/services\/",
"APP_VERSION": "1.0",
"ENVIRONMENT": "blackberry",
"LOGIN_DISPLAY_TYPE": "embedded",
"WORKLIGHT_PLATFORM_VERSION": "6.2.0.01.20141027-1531",
"WORKLIGHT_ROOT_URL": "http:\/\/192.168.0.222:10080\/bb67\/apps\/services\/api\/bb67\/blackberry\/"
};
</script>
<script src="worklight/wljq.js"></script>
<script src="worklight/worklight.js"></script>
<script>window.$ = window.jQuery = WLJQ;</script>
</head>
<body style="display: none;">
<!--application UI goes here-->
Hello Worklight<input onclick="msiteCall()" type="button" value="Call Adapter">
<script src="js/initOptions.js"></script>
<script src="js/main.js"></script>
<script src="js/messages.js"></script>
</body>
</html>
main.js
/* JavaScript content from js/main.js in folder common */
function wlCommonInit(){
/*
* Use of WL.Client.connect() API before any connectivity to a Worklight Server is required.
* This API should be called only once, before any other WL.Client methods that communicate with the Worklight Server.
* Don't forget to specify and implement onSuccess and onFailure callback functions for WL.Client.connect(), e.g:
*
* WL.Client.connect({
* onSuccess: onConnectSuccess,
* onFailure: onConnectFailure
* });
*
*/
// Common initialization code goes here
WL.Client.connect({
onSuccess: function onConnectSuccess(res){
alert('Connection Success '+res);
},
onFailure: function onConnectFailure(res){
alert('Connection Failure '+res);
}
});
}
/* JavaScript content from js/main.js in folder blackberry */
// This method is invoked after loading the main HTML and successful initialization of the Worklight runtime.
function wlEnvInit(){
wlCommonInit();
// Environment initialization code goes here
}
var timeout = 30000;
function msiteCall(){
alert('Inside call');
var invocationData = {
adapter : "msiteAdap",
procedure : "getStories",
parameters : [],
compressResponse : true
};
//WL.Logger.debug('invoke msg '+invocationData, '');
WL.Client.invokeProcedure(invocationData, {
onSuccess : function succ(){alert("Success...");},
onFailure : function fail(){alert("Failure...");},
});
}
Пожалуйста, предложите, если чего-то не хватает. Я использую веб-сайт для создания проекта. Я использовал приведенную ниже команду для построения файла cod.
bbwp C:\myapp\myarchive.zip -d -o C:\myapp\output
А ниже - сгенерированная структура из проекта worklight.
Пожалуйста, предложите, если есть какой-нибудь правильный документ с веб-проектом в рабочем свете.
1 ответ
Из комментариев было написано, что это было решено при запуске приложения на физическом устройстве. Это устройство подключено через WiFi к той же сети, в которой работает сервер.
Оставшаяся проблема - при запуске приложения в BlackBerry Simulator, который на самом деле работает внутри VMWare Fusion.
Если эта виртуальная машина не может подключиться к вашей локальной сети, приложение, работающее внутри нее, также не сможет подключиться к серверу.
Предложения:
- Просмотрите настройки виртуальной машины и убедитесь, что она правильно настроена для доступа к локальной сети.
- Вы можете проверить это, открыв браузер внутри и посмотреть, сможете ли вы получить доступ к консоли Worklight на сервере.