2
WAMP
サーバーに自分のアンドロイドアプリを接続したいと思います。私はjavascript
を使っています。私はHTML file
をロードするアクティビティを持っています。内部的にはHTML file
にはjavascript
がロードされます。サービスから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ファイル従います:
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
関数を呼び出すことができます任意の方法はありますか?可能であれば、アプリケーションがフォアグラウンドになっていなくてもサーバーを実行させることができます。
ありがとうございました。
、私はUIが所有しているのと同じWebViewのオブジェクトを使用したい...ということが可能である(それは私が必要な状態を持っていますか)? – Michael