2
WAMP
서버에 안드로이드 앱을 연결하고 싶습니다. 나는 그것을하기 위해 javascript
를 사용하고있다. 내가 HTML file
을로드하는 활동이 있습니다. 내부적으로 HTML file
은 javascript
을로드합니다.서비스에서 자바 스크립트 호출 android
휴대 전화가 잠긴 경우에도 서버가 계속 실행되기를 원합니다.
이제 전화가 잠길 때 서버 연결이 끊어집니다.
function configureServerIp(ip) {
console.log("ip=>"+ip)
if(ip != null) {
connection = new autobahn.Connection({url: 'ws://'+ip+':8080/ws', realm: 'realm1'});
connection.onopen = function (session) {
openSession = session;
console.log("SESSION: " + session);
session.subscribe('bms.device.msg',onevent)
session.subscribe('bms.device.request.location',onLocationRequest)
session.subscribe('bms.device.request.config',onConfigRequest)
window.JSInterface.isConnected(true);
};
connection.onClose = function(reason, details) {
openSession = null;
window.JSInterface.isConnected(false);
}
connection.open();
}
}
어떤 방법 우리는 서비스에서 javascript
함수를 호출 할 수 있나요 :
mWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new JavascriptInterface(this), "JSInterface");
mWebView.setWebContentsDebuggingEnabled(true);
mWebView.setWebViewClient(
new WebViewClient() {
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.d(TAG,"Page loading finished");
String ip = "XXX.XXX.XXX.XXX";
mWebView.loadUrl("javascript:configureServerIp('"+ ip + "')");
}
}
);
내 JS 파일을 따릅니다 :
내 활동의 코드를 따릅니다? 가능한 경우 앱이 포 그라운드에 있지 않을 때에도 서버가 실행되도록 할 수 있습니다.
감사합니다.
존재하는 경우 UI가 소유하고있는 것과 동일한 WebView 객체를 사용하고 싶습니다. (필요한 상태가 있습니다.) 가능한가요? – Michael