Tham dự Tech Lounge

Tham dự Tech Lounge


Thay đổi user-agent để duyệt web dạng mobile như iphone/ipad

nova_ck
13/4/2012 15:32Phản hồi: 5
Thay đổi user-agent để duyệt web dạng mobile như iphone/ipad
Như các bạn sử dụng Hp TouchPad nói riêng và các thiết bị webOS nói chung đã biết thì duyệt web trên webOS luôn hiển thị full trang web , dạng trang web cho máy tính , chứ không hiển thị dưới dạng mobile dành cho các thiết bị di động .
Vấn đề ở đây là các trang web không nhận biết ra các thiết bị chạy webos nên nó không tự động chuyển sang hiển thị định dạng mobile . Ví dụ đơn giản nhất là tinhte.vn , nếu bạn dùng điện thoại tablet Android ,iphone,ipad hay wp7 để truy cập vào thì nó sẽ tự hiển thị sang dạng web mobile ,ngay cả nếu bạn sử dụng Hp TouchPad chạy Android cũng vậy , nhưng nếu chạy webOS thì nó sẽ hiển thị trang web hoàn chỉnh giống y như trên máy tính .
Điều này cũng có cái ưu điểm là duyệt web với trải nghiệm khá đầy đủ như trên PC nhưng nhược điểm là tốc độ rất chậm , tốn dung lượng vì máy phải hiển thị đầy đủ các banner flash quảng cáo và các thông tin khác .

Trước đây trên webosnation.com cũng đã có giải pháp cho palm pre nhưng hiện tại đối với các bản webOS mới cũng như cho TouchPad chạy webOS 3.0.5 vẫn chưa có giải pháp .
http://forums.webosnation.com/webos-patches/200656-iphone-user-agent-spoof-how-make-all-mobile-websites-display-perfectly.html

Sau một hồi thử nghiệm từ các file sh và hulu fix , mình đã tạo ra được file change-user-agent
cho Hp TouchPad chạy webOS 3.0.5 .

Nói đơn giản mục đích của file này là khi duyệt web thì trình duyệt sẽ hiển thị trang web như cho ipad (hoặc iphone) . Ví dụ bạn vào tinhte.vn thì nó sẽ tự chuyển sang giao diện mobile chứ không phải giao diện PC như trước nữa .

[​IMG]


Hoặc là vnexpress cũng sẽ tự chuyển sang giao diện mobile ( các bạn để ý thanh địa chỉ vẫn vậy nhưng giao diện lại là mobile chứ không phải cho PC nữa )

[​IMG]


Mình đã thử nghiệm trên TouchPad của mình , đã thử cả giao diện cho iPhone và iPad ,chạy tốt .
Có một lỗi là khi xem youtube thì không hiển thị nút tua , chắc có lẽ do sự khác nhau giữa trình duyệt trên webOS và iOS .

Trước khi làm mình khuyến cáo trước là cái này dành cho những bạn nào thích thử nghiệm , sẵn sàng webOS Doctor ( trong trường hợp bị lỗi gì đó ) và quan trọng là biết mình đang làm gì .

Cách thực hiện từng bước như sau :

Quảng cáo

Quảng cáo




[​IMG]

-----------------

Để hiểu rõ hơn về file change-user-agent.sh các bạn có thể dùng Notepad ++ để mở file này ra xem .
Chỗ code mình thay đổi là OLD_UA và NEW_UA
OLD_UA là user agent cũ (mặc định) của TouchPad 3.0.5 ( chú ý là đối với 3.0.4 hay 3.0.2 nó sẽ khác nhau đấy )
OLD_UA='Mozilla/5.0 (%s; Linux; %s/%s; U; %s) AppleWebKit/534.6 (KHTML, like Gecko) %s/234.83 Safari/534.6 %s/%s'

NEW_UA là đoạn code (user agent) sẽ đc thay vào
NEW_UA='Mozilla/5.0 (iPad; U; en) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/ '

Như vậy khi duyệt web thì nó sẽ gửi thông tin như một chiếc ipad và kết quả là máy sẽ nhận và hiển thị trang web theo định dạng mobile (dành cho iPad)

Hiện tại mình chỉ có thể thử nghiệm trên TouchPad nhưng mình nghĩ đối với các thiết bị webOS khác cũng sẽ tương tự .
Quan trọng nhất là phải biết được chính xác cái OLD_UA của thiết bị là gì , vì mỗi thiết bị khác nhau , chạy các phiên bản webOS khác nhau thì thông số sẽ khác nhau . Ví dụ như TouchPad chạy webOS3.0.2 sẽ khác TouchPad chạy webOS 3.0.5 .
Đoạn NEW_UA các bạn có thể thay bằng của iphone thì sẽ hiển thị trang web khi duyệt web y như iphone vậy .
Chú ý là khi sửa bằng Notepad++ thì hai dòng OLD_UA và NEW_UA phải dài bằng nhau , nếu ngắn hơn thì phải thêm dấu cách cho nó dài bằng nhau , nếu không sẽ lỗi .

Cuối cùng mình xin nhắc lại là các này chỉ dành cho các bạn nào thích thử nghiệm , không khuyến cáo các bạn mới sử dụng thực hiện .
Vì sử dụng file sh có liên quan tới hệ thống nên luôn sẵn sàng tâm lý webOS Doctor nếu lỗi , trên TouchPad mình làm không gặp lỗi gì nhưng trên Palm Pre hồi trước thì đã phải webOS Doctor .

Nếu bạn nào làm thành công thì có thể thử nghiệm với các UA của các thiết bị khác như SS Galaxy Tab, Xoom .. để tìm cái nào tối ưu nhất cho TouchPad , mình sẽ thử và cho kết quả sau .

Chúc các bạn thành công nhé .

Update :

- Mình thay bằng UA của TouchPad chạy Android 4.0.4 , kết quả là tất cả các trang web đều hiển thị dang mobile , nhưng vẫn bị lỗi mất thanh điều khiển khi xem youtube .

- Mình thay UA của Macintosh ( cảm ơn thành viên eieiosoftware trên webos nation )
Bây giờ Youtube hiển thị bình thường , nhưng vào tinhte.vn sẽ hiển thị dạng web mobile ,rất văn hoá 😃
5 bình luận
Chia sẻ

Xu hướng

drthang2007
ĐẠI BÀNG
12 năm
Thanks bác, bài của bác rất hay, nếu làm trên điện thoại webos thì sẽ phải webdoctor.
@drthang2007 Mình viết cái này dành riêng cho TouchPad thôi , trên webos nation có code dành cho TouchPad chạy 3.0.2 nhưng không chạy đc trên webos 3.0.5 do UA đã thay đổi .
UA chuẩn của TouchPad chạy 3.0.5 là mình lấy trong patch hulu fix , chỉnh cho khớp các dòng lệnh và đưa UA mới của Macintosh vào thay thế.
Tất nhiên nếu bạn dùng nó cho điện thoại thì sẽ không được vì UA của điện thoại sẽ là đoạn code khác .
Đối với điện thoại mình đã thử ngay sau đó trên Pre , chạy tốt với file
change-user-agent.sh tải trên webos nation về .
Không phải webOS Doctor.

Mình đã khuyến cáo trước là việc sử dụng các file .sh can thiệp vào hệ thống rất dễ dẫn đến việc treo (đứng máy) nếu làm không đúng hoặc thay đổi file không chính xác .
drthang2007
ĐẠI BÀNG
12 năm
mình có tham khap trên webos nation. Đã tai file danh cho điện thoai. Va thử thay cái macintosh của bác vào. Nhưng khi chạy thì không được, nó báo lỗi không nhận ra version . Mình không hiểu là cái macintosh của bác đưa lên nó chỉ dành cho máy tính bảng hay thế nào
@drthang2007 Lỗi Could not find area to patch (unknown file version?) thường là do đoạn code OLD_UA không khớp với máy của bạn .
Bạn phải thay chính xác UA của máy thì nó sẽ ko báo lỗi nữa ,
file universal trên webos nation nó sẽ tự điền vào các thông số cho các máy , tuy nhiên không phải lúc nào nó cũng chạy đc vì chỉ cần sai 1 số là sẽ lỗi ngay .
Nếu bạn để ý 2 file dành cho TouchPad và điện thoại sẽ thấy UA hoàn toàn khác nhau .

UA của Macintosh thực ra cũng như của iphone/ipad thôi nguyên lý vẫn vậy nhưng tại sao mình thấy nó ổn nhất , vì nếu đổi thành iphone/ipad thì trình duyệt sẽ không chạy flash được nữa (iOS ko hỗ trợ) .
Nếu trên các dòng đthoai cũng ko chạy flash như Pre thì không sao nhưng trên TouchPad thì rất bất tiện .
Nếu dùng UA của Macintosh thì khi vào tinhte sẽ hiển thị giao diện Mobile còn lại thì bình thường , flash chạy vẫn tốt .
Các trang báo khác nếu mình chuyển sang giao diện mobile thì lần sau vào lại nó sẽ giữ nguyên giao diện mobile .

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019