2013-10-11 3 views
1

Я не могу связаться с WebView to Titanium, используя сплав? Кажется, он работал в прошлом Ti.App.fireEvent(), но в новом проекте Alloy он не работает. Да, я прочитал эти документы, но они, похоже, устарели: https://wiki.appcelerator.org/display/guides/Communication+Between+WebViews+and+Titanium При использовании сплава нет файла app.js - только файл alloy.js. Если у кого-нибудь есть пример этого, работающего в ALLOY, это было бы здорово! Вот что я пробовал.Титановый сплав Webview Ti.App.fireEvent НЕ работает

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(); 

е я запускаю код только умереть предупреждение перед Ti.App.fireEvent пожаров - предупреждение после этого нет? Думаю, это означает, что Ti.App.fireEvent не выполняется и не прерывает функцию?

Я застрял на этом весь день! Любая помощь будет оценена! Thanks

ответ

0

Я скопировал ваш код в index.js, index.xml и assets/webview.html и запустил его как на Android, так и на iOS-симуляторе. Все предупреждения были уволены, поэтому ваша ошибка должна быть где-то в другом месте.

0

Это, похоже, получил это работает ... В HTML файл я должен был определить вар 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;}sup{vertical-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> 
Смежные вопросы