HTTP Post后对外部链接的控制(cordova)
这是我的第一个混合应用程序。我在这里已经6个月了,所以我积累了很多经验。我们的目标是android 4+和ios 8,9。我们正在使用HTTP Post后对外部链接的控制(cordova),cordova,phonegap-plugins,hybrid-mobile-app,inappbrowser,Cordova,Phonegap Plugins,Hybrid Mobile App,Inappbrowser,这是我的第一个混合应用程序。我在这里已经6个月了,所以我积累了很多经验。我们的目标是android 4+和ios 8,9。我们正在使用cordova cli 在cordova应用程序中,我们目前正在开发在线支付功能。我们正在使用第三方钱包系统 我们准备详细信息(唯一id、事务详细信息、重定向url等),并通过HTTP post(非ajax)发布到第三方托管服务器 第三方钱包系统提供了一个页面,允许用户输入凭证。成功完成后,用户将被重定向到定义的重定向url(我们将在服务器中托管该url)。在该页
cordova cli
在cordova应用程序中,我们目前正在开发在线支付功能。我们正在使用第三方钱包系统
我们准备详细信息(唯一id、事务详细信息、重定向url等),并通过HTTP post(非ajax)发布到第三方托管服务器
第三方钱包系统提供了一个页面,允许用户输入凭证。成功完成后,用户将被重定向到定义的重定向url(我们将在服务器中托管该url)。在该页面中,将有返回按钮,点击他必须返回到应用程序
我尝试了inappbrowser选项,我无法获取新付款页面的参考,因为它是post request not get(我的意思是,window.open没有帮助)。请帮我做这件事
编辑
更具体地说,在我的应用程序中,我有一个表单,它发布到外部url。在外部页面中,单击链接,我需要返回到我的应用程序。要返回到应用程序,您需要实现以下事件处理程序:
var ref =cordova.InAppBrowser.open(url, "_blank",'location=no,clearcache=yes,hardwareback=no,zoom=no');
ref.addEventListener('loadstart',onBrowserLoadStart);
ref.addEventListener('loadstop',onBrowserLoadStop);
ref.addEventListener('loaderror', onBrowserError);
ref.addEventListener('exit', onBrowserClose);
在浏览器中的“关闭”按钮上,重定向到某个虚拟关闭页面,然后在onBrowserLoadStart事件上,执行以下操作:
var cUrl= 'webpageaddress/dummytemplate/appClose';
if(event.url===cUrl){
ref.close();
}
function onBrowserLoadStop(event){
//alert('form url is:'+ event.url);
var cUrl= 'externalPageAddress/Dummytemplate/PaymentProcess';
if(event.url===cUrl){
var msg;
var newHtml='someHTMLDATA';
var withoutScriptHtml = $(newHtml.bold());
withoutScriptHtml.find('script').remove();
msg= " var formDiv = document.createElement('div'); formDiv.id='paymentFormDiv'; ";
msg+= " formDiv.innerHTML='" + withoutScriptHtml.html()+ "';" ;
msg += " document.getElementById('InputForm').appendChild(formDiv);";
msg += " document.getElementById('paymentForm').submit();";
ref.executeScript(
{
code: msg
},
function(values){
console.log(JSON.stringify(values));
}
);
}
要将数据发布到表单,请在外部页面中。这样做:
var cUrl= 'webpageaddress/dummytemplate/appClose';
if(event.url===cUrl){
ref.close();
}
function onBrowserLoadStop(event){
//alert('form url is:'+ event.url);
var cUrl= 'externalPageAddress/Dummytemplate/PaymentProcess';
if(event.url===cUrl){
var msg;
var newHtml='someHTMLDATA';
var withoutScriptHtml = $(newHtml.bold());
withoutScriptHtml.find('script').remove();
msg= " var formDiv = document.createElement('div'); formDiv.id='paymentFormDiv'; ";
msg+= " formDiv.innerHTML='" + withoutScriptHtml.html()+ "';" ;
msg += " document.getElementById('InputForm').appendChild(formDiv);";
msg += " document.getElementById('paymentForm').submit();";
ref.executeScript(
{
code: msg
},
function(values){
console.log(JSON.stringify(values));
}
);
}
}HTTP以发送到支付系统。。我宁愿使用HTTPS。是的,你是对的。它是HTTPS。请在你的帖子中回答以下问题。因为这似乎是你关于这个主题的第一篇文章。这是你的第一款混合应用程序吗?你的目标平台和目标版本是什么:安卓4、5、6?iOS 7,8,9?你在用什么?请不要假设答案,请阅读链接。一旦你在帖子中回答了问题,在评论中回复,这样我就知道你已经在帖子中添加了信息。你还应该知道Phonegap不是一个好消息。这两个都是网站包装?是的,这是我的第一个混合应用程序,我在这6个月了。所以我在这方面积累了很好的经验(如果这是你的问题的话)。我们的目标是android 4+和ios 8,9。我们正在使用cordova cli。是的。如果端点为GET endpoint,则此操作将起作用。但在我的例子中,我需要形成一个端点的post。