Android 2.3.5 用のアプリケーションを作成しています (これは iOS とも互換性があります)。アプリの HTML/Javascript からサーバー上の Python プログラム (データの取得に Twisted エンジンを使用) にデータを転送したいと考えています。
私は多くのことを試し、さまざまなフォーラム、回答、チュートリアル、および Web ページ (ここにあるほとんどのものを含む) を調べましたが、回答が見つかりません。index.html ファイルにある関連する Javascript は次のとおりです。
<script src="socket-lib/socket.io.js"></script>
<script type="text/javascript" charset="utf-8">
function sendData() {
try {
var socket = io.connect('http://mywebsite.com:12345');
socket.on('connect', function(data) {
socket.send('Hello.');
socket.on('message', function (msg) {
socket.send('This is where I send data?');
});
});
}
catch(err) {
alert('ERROR: socket.io encountered a problem:\n\n' + err);
}
} // end of sendData
わからない場合は、これがどのように機能するかまだかなり混乱しています。私は何もテストすることさえできません。出続けるエラーはReferenceError: io is not defined
. のようなものを使用しているサイトもありvar io = require('socket.io');
ました。しかし、同じエラーが発生します: ReferenceError: require is not defined
.
socket-lib フォルダを assets/www に配置しました。ここには、他の Javascript ソースが必要です。これは、index.html ファイルがある場所でもあります。多くのサイトが を使用<script src="/socket.io/socket.io.js"></script>
していますが、これは私には意味がありません。多くのサイトも node.js の使用をほのめかしていますが、どこにも見当たりません。
どうすればこれを機能させることができますか?
返信の編集:
Chrome で試してみたところUncaught ReferenceError: require is not defined
、socket.io.js ファイルが表示されました。そのため、require.js をその直前にソースすることにしました。次に、エラーが発生しますUncaught Error: Module name "socket.io-client" has not been loaded yet for context
。私はこれを使用していないので、気にしません。ただし、接続を試みると、同じio is not defined
エラーが発生します。と定義するとvar io = require('socket.io')
、エラーはError: Module name "socket.io" has not been loaded yet for context: _ http://requirejs.org/docs/errors.html#notloaded
です。ウェブサイトを見ましたが、まったく役に立ちません。関数の引数として "require" を指定しようとすると、別のエラーが発生します: TypeError: undefined is not a function
.