2011-10-21 126 views
2

我想以下網址加載到網頁視圖:index.html的名字加載網址爲Android 3.1設備上的失敗,但工作在模擬器

能正常工作的Android 2.2設備和仿真器上,如以及Android 3.1模擬器。然而,當我加載應用了我的Android 3.1的Galaxy Tab上,我遇到了一個錯誤:

Webpage not available

The webpage at file:///android_asset/index.html?name might be temporarily down or it may have moved permanently to a new web address.

好像它不註冊,這是一個本地資產,並試圖訪問Web它。任何想法爲什麼會發生這種情況,只有在物理3.1設備上?如果我嘗試只加載index.html,那麼它在任何情況下都可以正常工作。我懷疑它,但它可能與問號有關嗎?

在此先感謝。

回答

0

我想你已經回答了你自己的問題。通過HTTP,'?'在URL中用於將URL參數與主URL分開;儘管這很有趣,它可以在模擬器中與file:/// android_asset一起使用,但是我會毫不猶豫地將它稱爲一個錯誤。

如果需要將參數傳遞到HTML頁面(也許是JavaScript的使用),一種選擇是使用錨語法(如file:///android_asset/index.html#name

+0

Thanks!使用錨定語法將是首選方式。 – user979551

+0

@ user979551不要害怕upvote有用的答案;) –

0

按照標準,file://網址不支持查詢字符串,如您的?name。所以這不是一個錯誤。你首先想完成什麼?你的代碼中哪部分應該處理這個名字?如果是JavaScript,請加載頁面,然後通過與javascript: URL調用另一個loadUrl()調用一些JavaScript。

+0

我有一些運行的JavaScript,我需要傳遞一些數據,因爲問題是JavaScript必須立即加載,所以我無法檢索頁面後的數據已被提取。感謝您的洞察力! – user979551

1

我有同樣的問題,但有一個解決辦法...

變化?名稱#NAME代替,它會工作,因爲 Android支持命名錨。然後,您可以使用如下所示的JavaScript來檢測錨並對其執行操作:

if (window.location.href.search('#name') > 0) 
{ 
    // Do something 
} 
相關問題