Android ICS上的WebView,android_assets的iframe問題



android-4.0 android-assets (1)

先生,我在Android冰淇淋三明治(4.0.3)中使用Phonegap(Apache Cordova)和IFrame時遇到了​​同樣的問題。

為了解決這個問題,我不得不編輯Apache Cordova源代碼。 我更改了org.apache.cordova。 CordovaWebViewClient.java文件,並註釋了這部分代碼,並包含了最後一行( return false; )。

所以它現在看起來像這樣:

    // All else
    //        else {
    //
    //            // If our app or file:, then load into a new Cordova webview container by starting a new instance of our activity.
    //            // Our app continues to run.  When BACK is pressed, our app is redisplayed.
    //            if (url.startsWith("file://") || url.indexOf(this.ctx.baseUrl) == 0 || ctx.isUrlWhiteListed(url)) {
    //                this.ctx.loadUrl(url);
    //            }
    //
    //            // If not our application, let default viewer handle
    //            else {
    //                try {
    //                    Intent intent = new Intent(Intent.ACTION_VIEW);
    //                    intent.setData(Uri.parse(url));
    //                    ctx.startActivity(intent);
    //                } catch (android.content.ActivityNotFoundException e) {
    //                    LOG.e(TAG, "Error loading url "+url, e);
    //                }
    //            }
    //        }
    //        return true;
    return false;

此問題僅發生在Android ICS上,但我更改了所有應用的代碼。 我還在做測試。

在我的分析中,似乎當您嘗試在iFrame中加載頁面時,ICS上的Android WebView將其解釋為新的頁面請求,並且它取代了主要應用程序! ,或換句話說,它在孔父窗口中打開請求的頁面。

我沒有動過其餘的代碼。

我希望它有所幫助,就像它對我一樣。

最好的祝福。

亞力山大阿爾梅達

我的應用程序引擎在WebView中運行。 它跨越不同的IFRAMES。 主要應用程序html和iframes html都在android_assets上。 在Android 3.x上沒有任何問題。 在Chrome瀏覽器等上也是如此

如果我創建了一個IFRAME(createElement - > appendChild),則會創建iframe。

當我在其中加載東西時(iframe.src =“url”<> iframe.contentWindow.location.href =“url”)...它取代主要應用程序!! (而不是加載到iframe)

已經嘗試過:

  • window.setTimeout延遲加載...失敗。
  • 在webview中,將X-Frame-Options = SAME_ORIGIN作為標題註入任何加載的頁面 - >失敗
  • 創建iframe,設置sandbox = same_origin,allow_scripts - >失敗

有類似問題的人嗎? 或者有人可以幫我找到有關WebView ICS錯誤和Honeycomb的文檔嗎?

還發現了許多其他奇怪的問題...... ICS真的是這個車嗎? :S:S





android-assets