钛合金 Webview Ti.App.fireEvent 不工作

Posted

技术标签:

【中文标题】钛合金 Webview Ti.App.fireEvent 不工作【英文标题】:Titanium Alloy Webview Ti.App.fireEvent NOT working 【发布时间】:2013-10-19 16:04:02 【问题描述】:

我无法使用 Alloy 从 WebView 与 Titanium 通信?它似乎在过去的 Ti.App.fireEvent() 中有效,但在一个新的 Alloy 项目中它不起作用。 是的,我已经阅读了这些文档,但它们似乎已经过时了:https://wiki.appcelerator.org/display/guides/Communication+Between+WebViews+and+Titanium 使用合金时,没有 app.js 文件 - 只有一个alloy.js 文件。 如果有人有一个在合金中工作的例子,那就太好了! 这是我尝试过的。

webview.html

  <html>
  <head>
    <script type="text/javascript">
    function fire(e)
      alert("Before Ti.App.fireEvent");
      Ti.App.fireEvent("fromWebview",);
      alert("After Ti.App.fireEvent");
    
    </script>
  </head>
  <body>
  <a href="#" onClick="fire()">Click this link to execute the fire() function</a>
  </body>
</html>

index.xml

<Alloy>
    <Window id="w_history">
            <WebView id="webview" url="/webview.html" />
    </Window>
</Alloy>

index.js

Ti.App.addEventListener('fromWebview',function(e)
  alert("Clicked from Web");
);

$.w_history.open();

f 我在 Ti.App.fireEvent 触发之前运行代码仅会发出警报 - 之后的警报不会?我猜这意味着 Ti.App.fireEvent 没有被执行并破坏了函数?

我一整天都被困在这上面!任何帮助,将不胜感激! 谢谢

【问题讨论】:

【参考方案1】:

我将您的代码复制到 index.js、index.xml 和 assets/webview.html 并在 androidios 模拟器上运行。所有警报都已触发,因此您的错误必须在其他地方。

【讨论】:

【参考方案2】:

这似乎让它工作了......在 HTML 文件中,我必须在函数内定义 var Ti = window.parent.TI

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<style> html, body  margin: 5px; padding: 0px;  p margin: 0; text-indent: 9.0pt;font-size: 13pt;line-height: 15pt;supvertical-align: super;color: black;font-weight:bold;margin-right:3px;font-size: 8pt;</style>
    <script type="text/javascript">
    function fire(e)
    var Ti = window.parent.Ti;
    alert("Before Ti.App.fireEvent");
      Ti.App.fireEvent("fromWebview",);
      alert("After Ti.App.fireEvent");
    
    </script>
  </head>
  <body>
  <a href="#" onClick="fire()">Click this link to execute the fire() function in the embedded script of this local page</a>
  </body>
</html>

【讨论】:

以上是关于钛合金 Webview Ti.App.fireEvent 不工作的主要内容,如果未能解决你的问题,请参考以下文章

钛合金(TA、TC、TB)阐述热处理工艺

钛合金(TA、TC、TB)阐述热处理工艺

钛合金背活性

钛合金onClick参数

无合金钛螺纹

钛合金简单数字广告条目