Ios 如何在PhoneGap应用程序中将参数传递到本地页面?
在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
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手机