7

InAppBrowser を使用して、ユーザーが InAppBrowser を閉じることを選択したときに、ユーザーが現在使用しているサイトの URL を取得したいと考えています。

exit イベントのイベントリスナーを追加しても、URL が返されないようです。

回避策として最初に考えたのは、loadstart イベントをサブスクライブし、そこから URL を取得して、常に「最新の」URL を取得することでした。ただし、ユーザーが戻るボタンを押したときに常に起動するとは限りません。

これを解決する方法はありますか?

PhoneGap 2.8.0 の使用

4

4 に答える 4

7

3.1を使用すると、かなり簡単です

ロード開始時にイベントを追加するだけです。またはロードストップ。

 var ref = window.open('http://apache.org', '_blank', 'location=yes');
 ref.addEventListener('loadstart', function() { alert(event.url); });

詳細については、コルドバのドキュメントを参照してください。コルドバのドキュメント

于 2013-10-11T14:41:34.353 に答える
1

angularjs、Ionic でブラウザ InAppBrowser の URL を取得する

ブラウザのイベント処理(InAppBrowser)を利用することで、開いているウィンドウのビュー(ブラウザ)のURLを取得できます。

例として、Twitter ページを呼び出しており、ページが URL を変更するたびに、Url でアラートを表示します。

var twitterWindow = window.open("https://twitter.com/", '_blank', 'location=no');
                    twitterWindow.addEventListener('loadstart',  function(event) {
                        alert("Current Event : "+ event.url);
                    });

ここでは、 browser のイベントを処理するために「addEventListener」を使用します。

 window.open('local-url.html');                  
// loads in the Cordova WebView 
window.open('local-url.html', '_self');         
// loads in the Cordova webView
window.open('local-url.html', '_system');       
// Security error: system browser, but url will not load (iOS)
window.open('local-url.html', '_blank');        
// loads in the InAppBrowser
window.open('local-url.html', 'random_string'); 
// loads in the InAppBrowser
window.open('local-url.html', 'random_string', 'location=no'); 
// loads in the InAppBrowser, no location bar

ブラウザのイベントを処理するには、次を使用できます。

var ref = window.open('http://whitelisted-url.com', '_blank');
ref.addEventListener('loadstart', function(event) { alert(event.type + ' - ' + event.url); } );
ref.addEventListener('loadstop', function(event) { alert(event.type + ' - ' + event.url); } );
ref.addEventListener('loaderror', function(event) { alert(event.type + ' - ' + event.url + ' - ' + event.code + ' - ' + event.message); } );
ref.addEventListener('exit', function(event) { alert(event.type); } );

InAppBrowser を閉じるには:

var ref = window.open('http://whitelisted-url.com', '_blank');
ref.close();
于 2016-02-24T11:28:12.170 に答える
0

レオの答えを完成させるために:eventオブジェクトを引数としてloadstart関数に渡すと、すべてが正常に機能します。

ref.addEventListener('loadstart', function(event) { alert(event.url); });
于 2016-03-13T19:41:19.290 に答える