0

tidSDK アプリケーションで JavaScript から ruby​​ 変数にアクセスできません。私が使用している SDK のバージョンは、現在最新バージョンの 1.2.0.RC4 です。以下に基本的な例を示します。

<!DOCTYPE html>
<html>
<head>
  <title>Hello World</title>
  <style type="text/css">
    body {background: #fff;}
  </style>
</head>
<body>
  <h1>Hello World</h1>

  <script type="text/python">
      helloP = "Hello from Python!";
  </script>

  <script type="text/ruby">
      $helloR = "Hello from Ruby!";
  </script>

  <script type="text/php">
      $helloPHP = "Hello from PHP!";
  </script>

  <script type="text/javascript">  
      alert("Hello from JavaScript!");
      alert(helloP);
      alert(helloPHP);
      alert(helloR);
  </script>
</body>
</html>

この例では、python、PHP、および ruby​​ 変数に値を宣言して割り当てています。JavaScript の alert() 関数は、python および PHP 変数では機能しますが、ruby 変数では機能しません。だから、alert(helloP); およびアラート (helloPHP); これらの変数の内容を含むポップアップ ダイアログを表示しますが、alert(helloR) では何も表示されません。

一方、Ruby の関数は JavaScript で見ることができます。そのため、 ruby​​_function が ruby​​ 関数の場合、JavaScript ではアラート ( ruby​​_function() ) が機能します。

では、JavaScript はどのようにして ruby​​ 変数を認識できるのでしょうか? 助言がありますか?

4

1 に答える 1

2

これは 1.2 リリースでは機能しません。

インラインではなく、インクルード ファイルに ruby​​ を含める必要があります。

その後、期待どおりに動作します。

Resources フォルダー内: index.html

<html>
    <head>
        <script>
         Titanium.include("ruby.rb");
        </script>
    </head>
<body style="background-color:#ccc;margin:0">
</body>
</html>
<script>
  console.log(window.crim);
  console.log(crim);
  alert(crim.foo);
</script>

Resources フォルダー内: ruby​​.rb

window.crim = {
  'foo' => 'bar'
}

https://wiki.appcelerator.org/display/guides/Using+Titanium+Desktop+with+Rubyを参照してください。Titanium Desktop 1.2.0.RC1 SDKs and more recentという見出しの下の情報を探してください。

于 2012-09-10T19:17:44.130 に答える