Ios 如何在PhoneGap应用程序中将参数传递到本地页面?

Ios 如何在PhoneGap应用程序中将参数传递到本地页面?,ios,cordova,parameters,Ios,Cordova,Parameters,在PhoneGap应用程序中,我们可以使用以下代码设置起始页 self.viewController.wwwFolderName = @"www"; self.viewController.startPage = @"index.html"; 但是,如果我想将参数传递到该页面,它将不起作用 self.viewController.startPage = @"index.html?parameter=abc"; 它将导致一个nsurlerorredirectononexistentlocati

在PhoneGap应用程序中,我们可以使用以下代码设置起始页

self.viewController.wwwFolderName = @"www";
self.viewController.startPage = @"index.html";
但是,如果我想将参数传递到该页面,它将不起作用

self.viewController.startPage = @"index.html?parameter=abc";
它将导致一个
nsurlerorredirectononexistentlocation
错误


有没有一种简单的方法可以将参数传递到本地页面?

在phonegap应用程序中,您不能通过向本地页面传递参数来调用它们,因为系统会搜索与您传递的文件名称完全相同的文件。它不会将参数视为查询字符串

Ex: when you say "index.html?param=abc", instead of calling page index.html with a
parameter called param having value abc. It calls the page "index.html?param=abc"
which doesn't exist in the system. Hence, the error.
解决此问题的最佳方法是在调用页中将参数保存为本地存储,在下一页中使用并销毁它们

Ex: In your calling JavaScript file, use:
window.localStorage.setItem('param', 'abc');

Now, in your called file, access the local storage and delete it
param abc = window.localStorage.getItem('param');

window.localStorage.removeItem('param');

希望能有所帮助。

如果我是你,我会通过你将创建的插件方法(即plugin.GetQueryString())将所有信息传递给javascript。你可以创建一个通用插件方法,将所有查询参数作为字符串返回,然后你可以使用以下方法在javascript中处理它:

function getQueryParams(qs) {
    var params = {},
    tokens,
    re = /[?&]?([^=]+)=([^&]*)/g;

    while (tokens = re.exec(qs)) {
        params[decodeURIComponent(tokens[1])]
        = decodeURIComponent(tokens[2]);
    }

    return params;
}

window.$_GET = getQueryParams(plugin.GetQueryString());

因此,您将获得一个很好的数据结构,其中包含所有可以通过名称访问的get参数。

编辑:对于Cordova和Phonegap应用程序,此插件非常有用,因此您不必自己手动修改Android清单或iOS plist文件。 能够在两个平台上使用相同的
handleopeanurl()
函数还有一个优点(如果没有插件,
handleopeanurl()
将只是一个iOS功能)

无论如何,手动:

要实现您的目标,您必须:

1-在xCode中注册自定义方案(如HelloWorld)和自定义url(如
customurl

2-在页面上放置一个链接,如

3-对于Phonegap<3.0或Phonegap 3+,使用函数
handleopeanUrl
获取参数
username
的值,如:

function handleOpenURL(url) {

                    //Here we can parse the url .

                    var link = url.split(‘=’);

                    var username = link[1];

                    alert(username);

}
有一个关于如何做(iOS)的完整教程,这是我学习的全部内容


归功于Sourabha Kumar Sahoo

因为它是本地的,为什么不把参数放在javascript中?@wmfairuz有些情况下,参数在编译时是不确定的。我想做的只是把参数传递到本地html文件。为什么要投反对票@WeiLiu您在编写
index.html?parameter=abc
时询问如何将参数传递到
index.html
。无论如何,这是唯一的出路。在index.html页面上,只需将参数保存在LocalStorage或其他任何地方,并在需要的页面上使用它们。Phonegap应用程序总是加载index.html作为入口点,然后你必须在js代码中从那里开始。我没有点击并启动我的应用程序的链接。那么,你想传递到起始页的参数怎么可能是动态的呢?态度不错,恭喜。我用我的头脑和时间来帮助你,这是这个网站的主要目的。很抱歉打扰你,你再也听不到我的消息了。事实上,你可以,至少可以使用jQuery手机