2017-02-04 116 views
3

當在iPhone 7設備或模擬器上運行時,inappbrowser會成功打開,但事件監聽器不會被調用。下面的代碼在Android上正常工作。 我正在使用cordova 6.5.0,inappbrowser插件是1.6.1版本。我目前正在使用mac osx 10.12.2。Cordova InAppBrowser EventListeners無法在ios上工作

function redirect() { 
    if (isloggedin){ 
    navigator.notification.alert("You are already logged in"); 
    } else { 
    var url = "https://connect.stripe.com/oauth/authorize?response_type=code&client_id=CLIENT_ID&scope=read_write"; 
    var target = "_system"; 
    var options = "location=yes, hidden=no, clearcache=yes"; 
    browserRef.addEventListener('loadstart', function(event) { 
     if ((event.url).indexOf("https://example.com") !== -1) { 
     var redirectedURI = event.url; 
     registerUser(redirectedURI); 
     browserRef.close(); 
     } 
    }); 
    } 
} 

這裏是info about browserRef. 我很樂意提供更多信息更多導航通知的圖像,如我的config.xml文件。 任何幫助非常感謝,謝謝。

編輯:每當我試圖在我的重定向功能的末尾添加browserRef.close(),我在Xcode得到一個錯誤「IAB.close()調用,但它已經關閉」。我也試過window.open()沒有任何成功。

編輯2:重定向功能被稱爲這個按鈕

<a href="#" onClick="redirect();">Online Payments</a> 

回答

1

好了的點擊,所以想幾件事情後,這是爲我工作。我測試了針對不同目標的所有四種可能的inappbrowser事件。這些事件發回的唯一目標是「_blank」。

browserRef.addEventListener('loadstart', function(event) { navigator.notification.alert(event, event.url); }); 
browserRef.addEventListener('loadstop', function(event) { navigator.notification.alert(event); }); 
browserRef.addEventListener('loaderror', function(event) { navigator.notification.alert(event, event.code, event.message); }); 
browserRef.addEventListener('exit', function(event) { navigator.notification.alert("exit"); }); 

我注意到的其他事情:由於某種原因,「loadstart」只會在「_self」上運行。

雖然我已經解決這個問題的工作,如果有人可以提供一些洞察爲什麼出現這種情況,我會很高興提供有關我的代碼/建造一些更多的細節。

+0

我有同樣的問題,發現了同樣的問題,關於這個主題的進展? – Orion390

+0

@ Orion390不是真的,對不起。希望你弄明白。 – phil

+0

導致去的,而不是使用inAppBrowser上的另一形式給出,我把網站的iframe裏面科爾多瓦,同時顯示的網站(但給予了很多其他的東西照顧,像X-框架,選項的一切,工作方式你網站),希望它可以幫助某人。 – Orion390

相關問題