close

android 上可以用 WebView 物件直接嵌入網址, 顯示網頁內容.

而這次使用 WebSettings 中的


setSupportZoom(true);
//啟用android預設的縮放功能.

setBuiltInZoomControls(true)
//當一指壓住並上下拖曳網頁滾動時, 或以兩指的手勢縮放時,
//畫面出現android預設的縮放選項(+/-號).

setJavaScriptEnabled(true);
//啟動java script


來達成 WebView 上的網頁內容可以執行 java script, 並且可對頁面作放大縮小.

目前於 HTC XL, Motorola ME865 上測試時, 發現 HTC XL 對於頁面作放大縮小的操作完全無效.
Motorola ME865 則可正常運作, 交叉測試初步判斷 setJavaScriptEnabled(true) 的緣故,
查了很久好像沒有查到有關於 setJavaScriptEnabled(), setSupportZoom() 是否會衝到的討論.

後來突然想到, 是否有可能是 HTC 手機在 WebView 中對網址的支援有其獨特性才會有這樣的結果??
因此把 WebView 中的 URL 指向其它的有 java script 操作的網站再測試, 測試後在 XL, ME865 都能正常執行有 Java Script 的網站. (誤會 HTC 了, 對不起... Orz )

至此我想問題可能是來自於 WebView 所指向的網站內 html 語法居多.

一樣逐一刪去測試後, 發現原本專案中 WebView 所指的 html code 中含以下 html 5 語法,
<div data-role='header' data-position='fixed' data-tap-toggle='false'>
其中 data-position='fixed' (固定在畫面上的位置) 使得 XL 很規矩的固定畫面, 不提供頁面作放大縮小操作. 而 ME865 對 html 5 的支援比較隨興嗎? 所以 ME865 還是可以直接啟動 setJavaScriptEnabled(), setBuiltInZoomControls().  XD

最後取消 <div> 中的 data-position='fixed' 即可於兩者順利執行.

所以行動裝置也有能會因為對 html 5 的屬性支援度而有不同的結果.


arrow
arrow
    全站熱搜

    ness 發表在 痞客邦 留言(0) 人氣()