2016-03-05 76 views
0

控制外部链接这是我的第一个混合应用程序。我在这里已经6个月了,所以我已经积累了很好的经验。我们的目标都是android 4 + & ios 8,9。我们正在使用cordova cli通过HTTP Post(科尔多瓦)

在cordova应用程序中,我们正在开发一项在线支付功能。我们正在使用第三方钱包系统。

我们准备的详细信息(唯一ID,交易明细,URL重定向等)和后向第三方通过HTTP POST托管服务器(不阿贾克斯)

第三方钱包系统提出了一个页面,允许用户输入凭证。成功完成后,用户将被重定向到定义的重定向url(我们将在我们的服务器中托管)。在那个页面中,会有后退按钮,点击后他必须回到应用程序。

我试过inappbrowser选项,我无法获得新付款页面的引用,因为它是发布请求没有得到(我的意思是,window.open没有帮助)。请帮助我。

编辑

更具体地讲,在我的应用程序,我有形式张贴到外部URL。在外部页面,点击链接,我需要回到我的应用程序。

+0

HTTP张贴到支付系统。我宁愿使用HTTPS。 – HyperZ

+0

是的,你是正确的,它是HTTPS。 – Saravanan

+0

请在你的文章**中回答以下问题。因为这似乎是你在这个问题上的第一篇文章。这是你的第一个混合应用程序?你的目标平台和目标版本是什么:Android 4,5,6? iOS 7,8,9?您是否在使用[CLI,SDK或Build](https://github.com/jessemonroy650/top-phonegap-mistakes/blob/master/new-to-Phonegap.md#001)?请不要假设答案,请阅读链接。一旦你在帖子*中回答问题*,回复评论,所以我知道你已经添加了信息到帖子。 – JesseMonroy650

回答

0

回来的应用程序,您需要实现以下事件处理程序:

   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)); 
     } 
    ); 


} 

}

+0

是的,如果端点是GET端点,这将工作。但在我的情况下,我需要形成一个端点后。 – Saravanan

+0

将一些数据发布到端点,请参阅更新后的答案。 –

+0

请将其标记为答案 –