webwiew安卓編譯
⑴ HTML5如何讓封裝成安卓.apk文件
一、Android SDK中的WebView
1.在要Activity中實例化WebView組件:WebView webView = new WebView(this);
2.調用WebView的loadUrl()方法,設置WevView要顯示的網頁:
互聯網用:webView.loadUrl("http://www.31358.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.調用Activity的setContentView( )方法來顯示網頁視圖
4.用WebView點鏈接看了很多頁以後為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,圓汪點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
5.需要在AndroidManifest.xml文件中添加許可權,否則會出現Web page not available錯誤。
二、使用PhoneGap
PhoneGap是一個用基於HTML,CSS和javaScript的,創建移動跨平台移動應用程序的快速開發平台。它使開發者能夠利用 iPhone,Android,早腔斗Palm,Symbian,WP7,Bada和Blackberry智能手機的核心功能——包括地理定位,加速器,聯系 人,聲音和振動等,此外PhoneGap擁有豐富的插件,可以以此擴展無限的功能。PhoneGap是免費的,但是它需要特定平台提供的附加軟體,例如 iPhone的iPhone SDK,Android的Android SDK等,
詳細方法請見:http://phonegap.com/start#android
優點:在Eclipse中加入SDK,編程自由,完美適應不同設備屏幕大小,陸磨適合高手使用。
缺點:沒有使用布局,直接載入網頁,不能添加廣告。
三、使用Rexsee在線生成
Rexsee是開源的Android開發平台,支持開發者以標准化Web開發模式,使用HTML5、CSS3、Javascript快速實現移動應用。會 HTML就會Android。你要做的只是將做好的HTML5 應用上傳到Rexsee伺服器,很快,會編譯成標準的APK安裝文件。
網站:http://www.rexsee.com
優點:一鍵生成,適學普通人使用
缺點:直接封裝,無法添加廣告。
四、appMobi Html5 XDK 在線生成(使用了PhoneGap插件)
http://www.appmobi.com/
⑵ android 富文本編輯器+webview 顯示 高亮
UEditor編譯器支持代碼高亮顯示,設置方法如下:
1.頁面head引入UEditor類包文件shCore.js、shCoreDefault.css代碼
(註:引入文件路徑根據需求變更即可)
2.新增js代碼
刷新頁面,就可以看到頁面代碼高亮顯示。
⑶ Android 5.x 免 Root 升級系統 WebView
Android 的系統碎片化問題可以說是 Android 系統最大的硬傷了,自這個系統誕生以來十幾年過去了,依然沒能很好的解決,碎片化問題也是每個 Android 開發工程師心中的隱痛😂,每次處理系統碎片化帶來的問題時,血壓也能分分鍾飆升到 200+,為了減輕其他同仁的痛苦以及此後再遇到類似問題能少踩幾個坑,就之前的爬坑經歷做個記錄吧。
有關 WebieView 的重要性和其使用不是本文的重點,但是有幾個相關的屬性我們必須了解:
在Android4.4(API level 19)系統以前,Android使用了原生自帶的Android Webkit內核,這個內核對HTML5的支持不是很好,現在使用4.4以下機子的也不多了,就不對這個內核做過多介紹了,有興趣可以看下 這辯叢悶篇文章 。
從攜彎Android4.4系統開始,Chromium內核取代了Webkit內核,正式地接管了WebView的渲染工作。Chromium是一個開源的瀏覽器內核項目,基於Chromium開源項目修改實現的瀏覽器非常多,包括最著名的Chrome瀏覽器,以及一眾國內瀏覽器(360瀏覽器、QQ瀏覽器等)。其中Chromium在Android上面的實現是 Android System WebView ^1 。
從Android5.0系統開始,WebView移植成了一個獨立的apk,可以不依賴系統而獨立存在和更新,我們可以在 系統->設置->Android System WebView 看到WebView的當前版本。
從Android7.0系統開始,如果系統安裝了Chrome (version>51),那麼Chrome將會直接為應用的WebView提供渲染,WebView版本會隨著Chrome的更新而更新,用戶也可以選擇WebView的服務提供方(在開發者選項->WebView Implementation里),WebView可以脫離應用,在一個獨立的沙盒進程中渲染頁面(需要在開發者選項里打開) ^2 。
從Android8.0系統開始,默認開啟WebView多進程模式,即WebView運行在獨立的沙盒進程中 ^3 。―― 節選自 如何設計一個優雅健壯的Android WebView?(上)
WebView 的包名在 AOSP 中的值是 com.android.webview ,該值是在 AOSP 構建過程中編譯的版本,也就是說它是和系統一起被編譯出來的,由於大部分的第三方手機製造商都有自己的定製 ROM,所以包名也是不盡相同,比如 MIUI ROM 中它已經被改為 com.mi.webkit.core 。從 WebView 的版本歷史中可以看到自 Android 5.0 開始 WebView 移植成了一個獨立的 apk,可以不依賴系統而獨立存在和更新,這時候起 WebView 的包名就正式改為 com.google.android.webview 了。
所以這就是鄭核為什麼網上一堆人問為啥升級了一下系統 WebView ,App 內使用到 WebView 的地方或者是內置瀏覽器一碰就報 PackageManager$NameNotFoundException: com.google.android.webview 或者 PackageManager$NameNotFoundException: com.android.webview 之類的錯誤,這些問題在 Android 5.0 的機器上非常常見,因為你升級了 WebView 之後 TMD 包名都變了🤣,而 ROM 定製商一般在版本銜接時都很保守,所以即使系統升到了 Android 5.0 ,解決方案未必就是最新的,內置的 WebView 依然可能是硬編碼進 ROM 的,所以系統環境引用的包名可能依舊是 com.android.webview ,你升級到 com.google.android.webview 它當然不認識了😂。
通過上面一通廢話,你應該知道了,替換的坑就在如果你換上去的 WebView 包名和原內置的 WebView 包名不一致,就無法使用,所以就需要找一個包名一致的高版本 APK 了,還有一種方法是在系統目錄某個配置文件里改個什麼值,也就是包名引用,這樣你就能換成任何包名的 APK 了,這個暫時沒仔細研究,後續有結果了再更新。
APKMirror 是一個 APK 鏡像站點,在這里可以找到很多 APK 的 release 版本以及歷史版本,尤其 Google 全家桶系列的 APK 非常全,我們在這里根據需求直接搜索包名就可以了,我這里需要 com.android.webview ,檢索到如下結果,可以看到這些都是從第三方 ROM 里提取出來的。
因為 Google 官方早在 WebView 40 的時候就已經將包名換成 com.google.android.webview 了,最新的是 72.xxx ,我翻了 15 頁才找到最早改名並獨立出來的那個版本😂。
adb connect 192.168.18.235
adb shell
su
mount -o rw,remount /system
這里原目錄下的文件分別有 /webview/webview.apk 和 /webview/lib/arm/libwebviewchromium.so ,備份原目錄:
cd /system/app
mv webview/ webview-b/
mkdir -p webview/lib/arm/
這里很簡單,文件後綴 .apk 直接改成 .zip 然後解壓縮,復制出 libwebviewchromium.so 即可
先上傳文件到設備 /sdcard ,然後執行如下命令移動過去,和原路徑以及原文件名保持一致即可。
mv /sdcard/xxx.apk /system/app/webview/webview.apk
mv /sdcard/xxx.so /system/app/webview/lib/arm/libwebviewchromium.so
cd /system/app/
chmod 777 webview/*
adb reboot
如上一頓操作,其實也沒什麼難度,主要的坑就是包名一致的問題,還有一些系統目錄訪問許可權之類的問題,之前網上搜了好多,都說不 root 沒法換,或者換了會出問題,root 許可權其實就是為了訪問和寫入系統目錄,通過重新掛載就解決了,換了會崩掉的問題其實就是歷史遺留問題,從 4.x 過度到 5.0 WebView 獨立了,所以包名變了,或者是 ROM 定製方不按套路來導致換上去的 WebView 不被系統識別,只要找到合適的包就解決了。
⑷ 如何在Android中調用瀏覽器打開網頁
調用默認瀏覽器
Intentintent=newIntent();
intent.setAction("android.intent.action.VIEW");
Uricontent_url=Uri.parse("此處填鏈接");
intent.setData(content_url);
startActivity(intent);
其他瀏覽器
Intentintent=newIntent();
intent.setAction("android.intent.action.VIEW");
Uricontent_url=Uri.parse("此處填鏈接");
intent.setData(content_url);
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");startActivity(intent);
uc瀏覽器":"com.uc.browser","com.uc.browser.ActivityUpdate「
opera:"com.opera.mini.android","com.opera.mini.android.Browser"
qq瀏覽器:"com.tencent.mtt","com.tencent.mtt.MainActivity"
求採納
⑸ 求大神反編譯一個app 修復後給微信大紅包!修復webview訪問網頁
.如果頁面中鏈接,如果希望點擊鏈接繼續在當前browser中響應,而不是新開Android的系統browser中響應該鏈接,必須覆蓋webview的WebViewClient對象。mWebView.setWebViewClient(newWebViewClient(){(WebViewview,Stringurl){view.loadUrl(url);returntrue;}});或者直接跳轉到其它有webView的頁面載入url
⑹ 個人是做android使用Webview載入H5的時候,網路圖片顯示不出來,是空白的
是不是你的android工程的編譯版本太低了,切換到4.4的試試看。我就遇到過這樣的情況,有些webview的方法被禁止了,導致無法顯示。
⑺ 您好,我看到你之前的問題:qt添加QWebView控制項,編譯時出現問題,想知道你最後是怎麼解決的
webView->page()->mainFrame()->documentElement () 中搜索到需要顯示的部分,然後setHtml 追問: 我是在UI上添加一個QWebView控制項,然後編譯就出現了很多錯誤 WebView.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QWebView::setUrl(class QUrl const &)" (__imp_?setUrl@QWebView@@QAEXABVQUrl@@@Z) referenced in function "public: void __thiscall Ui_WebView::setupUi(class QWidget *)" (?setupUi@Ui_WebView@@QAEXPAVQWidget@@@Z) 回答: 2014-05-17 17:29 提問者採納 主要原因是生成的ui_*.h沒有更新 這是因為UI界面修改後, 所有的UI控制項布局都依賴所生成的Ui_*頭文件 你可以自己運行uic工具 當然你也可以當修改後運行下Qmake, 因為Qmake會自動運行Moc和Uic 這樣你的Ui文件就更新了 而Shadow build只是輔助工具,用來生成別的版本build的工具而已 當你修改了project選項, 一般來說當你點運行的時候是會重新Qmake一下的, 這樣你的UI文件又更新了 有問題HI 追問: 額,不是qmake的原因,網上都說用QWebView需要在.pro文件里加入QT+=webkit,添加響應模塊,但是實際上應該添加的語句是QT += webkitwidgets,不知道是不是QT版本更新給改了,我的是5.3版 回答: 那這個我不太清楚,對不起沒幫到你