Titanium:如何在webview中从外部URL重定向到内部URL

时间:2014-02-27 14:21:17

标签: ios redirect webview titanium appcelerator

所以我知道如何在Titanium Webview中访问外部和内部URL。但我不知道如何从外部网址重定向到内部网址。

我在根文件夹中有一个名为“index.html”的文件,因此对于webview,这应该可以访问它:

Ti.UI.createWebView({
    url: 'index.html'
});

外部网址非常简单

Ti.UI.createWebView({
    url: 'http://www.google.com'
});

但是,在外部网址上,如何重定向到此本地文件?这些都不起作用:

 <a href="file://index.html">LOCAL?</a>
 <a href="file:///index.html">LOCAL?</a>

或javascript变体

window.location = 'file:///index.html';

有关如何执行此操作的任何线索?

1 个答案:

答案 0 :(得分:0)

最终,我发现了实现这一目标的两种可能性。但它无法通过重定向完成。

一:使用webview.evalJS()函数

对某个变量进行轮询
var my_data = $.login_webview.evalJS('global.data;');

当然,它只适用于字符串,而不适用于对象。因此,如果您正在传递JSON,请确保将其设置为字符串!

二:执行实际的重定向服务器端,到另一个服务器端页面并监视URL更改,然后再次执行evalJS(),但不需要轮询

$.login_webview.addEventListener('load',function(e){
if (e.url.indexOf('mobile/redirect.php') > -1){
    var my_data = $.login_webview.evalJS('global.data');
    }
 });

请确保 2 您使用服务器端技术在Javascript中实际设置所需数据。