2012-09-12 98 views
0

我正在開發一個帶有PhoneGap 2.0的Android應用程序,該應用程序在iframe中打開本地存儲的Html。問題是,每當我嘗試加載任何Html時,它都會顯示,但應用程序中斷(不再執行Javascript)。這是我得到的logcat的:Phonegap - 在主視圖中打開本地文件,而不是在iframe中打開

09-12 12:14:43.374: D/CordovaWebView(19771): >>> loadUrlNow() 
09-12 12:14:43.394: D/CordovaLog(19771): JSCallback Error: Request failed. 
09-12 12:14:43.394: D/CordovaLog(19771): file:///android_asset/www/js/lib/cordova-2.0.0.js: Line 3698 : JSCallback Error: Request failed. 
09-12 12:14:43.394: I/Web Console(19771): JSCallback Error: Request failed. at file:///android_asset/www/js/lib/cordova-2.0.0.js:3698 
09-12 12:14:43.414: D/DroidGap(19771): onMessage(onPageStarted,file:///storage/sdcard0/file.html) 
09-12 12:14:43.584: D/chromium(19771): Unknown chromium error: -6 
09-12 12:14:43.704: D/Cordova(19771): onPageFinished(file:///storage/sdcard0/file.html) 
09-12 12:14:43.704: D/CordovaWebView(19771): >>> loadUrlNow() 
09-12 12:14:43.714: D/DroidGap(19771): onMessage(onNativeReady,null) 
09-12 12:14:43.714: D/DroidGap(19771): onMessage(onPageFinished,file:///storage/sdcard0/file.html) 

編輯:

什麼是實際發生的,是整個應用程序的HTML是由文件的一個替代。這就是爲什麼Javascript沒有執行......沒有Javascript。這說,有沒有人知道如何避免這種行爲?

回答

0

我找到了一個解決方案,儘管它不是最優的......它包括更改Cordova/PhoneGap源代碼並編譯它。我不知道這些修改的後果,只是它似乎工作。 要修改的文件是org.apache.cordova.CordovaWebViewClient.java。需要評論一堆線路,並在最後返回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; 

我得從here

解決方案
相關問題