我想知道离开后是否有任何方法可以重新使用我的移动应用程序。
例如,如果我将用户重定向到网页,一旦页面的请求完成后,如何将用户重定向到应用程序? 此外,我想将用户重定向到应用程序,保留当前网页提供的一些参数。
第二个例子,我猜facebook当用户使用facebook登录按钮时,确实喜欢这样,因为他直接重定向到facebook网页,然后使用facebook应答参数返回应用程序。
我目前正在使用带有Alloy框架和Appcelerator Studio的Titanium。
希望你们中的任何人都有答案,
致以最诚挚的问候,
昆汀
答案 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();