【问题标题】:Get back to mobile application after leaving it with Appcelerator Titanium离开 Appcelerator Titanium 后返回移动应用程序
【发布时间】:2016-11-18 10:09:08
【问题描述】:

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

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

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

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

希望大家有答案,

最好的问候,

昆汀

【问题讨论】:

    标签: redirect mobile titanium appcelerator titanium-alloy


    【解决方案1】:

    我认为你想做的是在应用程序之间切换:你的应用程序 -> Safari -> 通过链接返回你的应用程序

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

    <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>
    

    我没有尝试过该代码,但它应该是这样工作的

    【讨论】:

    • 非常感谢您的评论。我终于要使用网络视图了
    • 我为您提供了一个解决方案,让您可以在离开后重新使用您的应用。那是你的问题;)
    • 您的回答非常感谢 :) 不过,我将使用另一种方式摆脱我的 pb !
    【解决方案2】:

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

    在您的 app->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();
    

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

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

    【讨论】:

    • 非常感谢!我想使用 webviews 但能够找到一个好的事件来捕捉。终于找到了监听“加载”事件的解决方案,它让我在 url 更改后检索 url
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多