私はinAppBrowserを持っています(自分のアプリケーションでWebビューを表示中です)。そのために、私はinAppBrowserプラグインをCordovaに使用します。私はpdfのURLにアクセスしている場合、私はターゲットを_blankから_systemに変更します。問題は次のとおりです:2つのイベントがあります:loadstartとloadstop。 _systemターゲットを呼び出すためにloadstartにアクセスしている場合、loadstopがロードされた後で、ビューが変更されます。 私のターゲットは:私のアプリケーションをターゲットにしたい:_blankはほとんどの時間。私はpdf URL(例:http://www.orimi.com/pdf-test.pdf)にアクセスした後、私のアプリケーションはtarget:_system(pdfのみ)を持っていて、Webから行った後、アプリケーションshoultは変更されません。 私はここに私のコードを聞かせてくれます。おかげで..私が正しくあなたを理解していれば、あなたはIABのexit
イベントではありませんloadstop
をキャプチャする必要がCordova - _blank&_systemターゲットのeventListener/executeScript
var inAppBrowserRef;
var app = {
initialize: function() {
document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
},
onLoadStart: function(event) {
if (event.url.length > 3 && event.url.substr(event.url.length - 3).toLowerCase() == 'pdf') {
inAppBrowserRef.executeScript({ code: 'history.go(0);' });
cordova.InAppBrowser.open(event.url, '_system');
}
},
onDeviceReady: function() {
console.log('Starting InAppBrowser');
inAppBrowserRef = cordova.InAppBrowser.open('https://google.ro/', '_blank', 'location=no');
inAppBrowserRef.addEventListener('loadstart', this.onLoadStart);
inAppBrowserRef.addEventListener('loadstop', function() {
inAppBrowserRef.executeScript({ code: 'document.body.classList.add("app");' });
});
},
};
app.initialize();
GoogleのURLは例です。 IAB側では、私は前にpdf URLがあるまで、完全に動作しています。私はそれにアクセスするとブラウザ(_system)を開きますが、私はそれを閉じると問題があります。私のIABはそのURLにも行きます。私はIAB側のページをブロックし、ブラウザ側のPDFだけを使ってみたい。 Aaandは、私のブラウザ側で、IAB(_blank)に戻り、同じ条件でpdfに再びアクセスできるようにしたいと考えている。 –
反対側では、多分それはどういうわけかそのpdfを読むことが可能であり、私はファイルオープナー2を試してみましたが、URLのために私のために働いていませんでした...そして、私は正確に私が望むものを教えてくれるでしょう。私が望むのは、そのPDFを読むことができることです、私のIOSアプリケーションに戻って行く。私は単純にPDF URLにアクセスすれば、それは開きますが、私はバックボタンを持っていません。それを可能にする方法はわかりません。 –
私はそれがpdfに関係しているのか疑問です。同じ振る舞いをするでしょう。別の(空白の)インスタンスを開いてアクティブにしている間に_system IABで開くという大きな問題がありました。_systemブラウザのネイティブコードは、既存のウィンドウのコードとやりとりします(私たちの場合はクラッシュしました)。あなたの_blankウィンドウがナビゲートします。 –