2016-12-12 3 views
1

私は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(); 

答えて

0

。これを行うと、ユーザーがGoogleのウィンドウを閉じると、PDFが表示されます。

コードがblankウィンドウに読み込まれ、読み込みが開始されると、systemブラウザが起動します。私たちの経験が何かあれば、systemウィンドウを開くとblankウィンドウの状態が変わるので、これはクラッシュします。これらをサイドバイサイドで実行する必要がある場合は、苦痛の世界にある可能性が高いので、IABをフォークして、これを他のものの中で動作させる必要がありました。しかし、ユースケースはかなり複雑です。

+0

GoogleのURLは例です。 IAB側では、私は前にpdf URLがあるまで、完全に動作しています。私はそれにアクセスするとブラウザ(_system)を開きますが、私はそれを閉じると問題があります。私のIABはそのURLにも行きます。私はIAB側のページをブロックし、ブラウザ側のPDFだけを使ってみたい。 Aaandは、私のブラウザ側で、IAB(_blank)に戻り、同じ条件でpdfに再びアクセスできるようにしたいと考えている。 –

+0

反対側では、多分それはどういうわけかそのpdfを読むことが可能であり、私はファイルオープナー2を試してみましたが、URLのために私のために働いていませんでした...そして、私は正確に私が望むものを教えてくれるでしょう。私が望むのは、そのPDFを読むことができることです、私のIOSアプリケーションに戻って行く。私は単純にPDF URLにアクセスすれば、それは開きますが、私はバックボタンを持っていません。それを可能にする方法はわかりません。 –

+0

私はそれがpdfに関係しているのか疑問です。同じ振る舞いをするでしょう。別の(空白の)インスタンスを開いてアクティブにしている間に_system IABで開くという大きな問題がありました。_systemブラウザのネイティブコードは、既存のウィンドウのコードとやりとりします(私たちの場合はクラッシュしました)。あなたの_blankウィンドウがナビゲートします。 –

関連する問題