离开Appcelerator Titanium

时间:2016-11-18 10:09:08

标签: redirect mobile titanium appcelerator titanium-alloy

我想知道离开后是否有任何方法可以重新使用我的移动应用程序。

例如,如果我将用户重定向到网页,一旦页面的请求完成后,如何将用户重定向到应用程序? 此外,我想将用户重定向到应用程序,保留当前网页提供的一些参数。

第二个例子,我猜facebook当用户使用facebook登录按钮时,确实喜欢这样,因为他直接重定向到facebook网页,然后使用facebook应答参数返回应用程序。

我目前正在使用带有Alloy框架和Appcelerator Studio的Titanium。

希望你们中的任何人都有答案,

致以最诚挚的问候,

昆汀

2 个答案:

答案 0 :(得分:2)

我认为您要做的是在应用之间切换:您的应用 - > Safari - >通过链接返回您的应用

你必须在ios中的tiapp.xml中定义一个url方案 - > plist - > dict部分

<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.your.app</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>appurlscheme</string>
        </array>
    </dict>
</array>

有了这个,您可以在html中创建一个链接,如

<a href="appurlscheme://">Back to your app</a>

我没有尝试过这段代码,但这就是它的工作方式

答案 1 :(得分:1)

我不确定这是否可行,因为您在技术上离开了您的应用程序。我使用WebView呈现HTML页面,该页面在某个操作完成时触发事件(具有特定的有效负载)。然后我的控制器中的监听器捕获此事件并从那里处理有效负载。

在app-&gt; assets文件夹中创建一个新文件,并将其命名为yoursite.html。

将以下代码粘贴到其中:

<html>
  <head>
    <title>Test</title>
    <script type="text/javascript">
      window.onload = function() 
      {
        Ti.App.fireEvent('your_event', { 'message': 'Hello World!' });            
      };
    </script>
  </head>
  <body>
  </body>
</html>

然后将以下代码添加到您的控制器:

var win = Ti.UI.createWindow();         

Ti.App.addEventListener('your_event', function(e)
{
    alert(e.message);
});

win.add(Ti.UI.createWebView({ url: '/yoursite.html' }));

win.open();

提示:全局事件侦听器不利于您的应用程序的性能。如果用户只看到webview一次(像登录一样的单一操作),那么我建议您使用以下代码:

var win = Ti.UI.createWindow();         

var setWebViewEventHandler = function(e)
{
    this.removeEventListener('your_event', setWebViewEventHandler);

    alert(e.message);
}   

Ti.App.addEventListener('your_event', setWebViewEventHandler);

win.add(Ti.UI.createWebView({ url: '/yoursite.html' }));

win.open();