介紹
騰訊瀏覽服務由QQ瀏覽器團隊出品,致力於優化移動端【webview】體驗的整套解決方案,使用QQ瀏覽器X5內核SDK和X5雲端服務,解決移動端webview使用過程中出現的一切問題,優化用戶的瀏覽體驗,同時騰訊還將持續提供后續的更新和優化,為開發者提供最新最優秀的功能和服務。
X5SDK是通過調用【微信/手機QQ/空間】的X5內核,解決系統webview兼容性差、加載速度慢、功能缺陷等問題,開發接入便捷,大小只有253K,僅需幾行代碼,即可解決一切令開發者們頭疼的問題,為用戶提供最優秀的瀏覽體驗。
同時,QQ瀏覽器團隊還將持續更新和優化X5內核,持續優化功能,並保證兼容各種web新特性。
其相對於系統webview,具有下述明顯優勢:
1) 速度快:相比系統webView的網頁加載速度有近30%的提升。
2) 省流量:雲端優化技術使流量節省20%
3) 更安全:24小時安全問題解決機制
4) 更穩定:經過億級用戶的使用考驗,CRASH率0.15%
5) 集成強大的視頻播放器,支持各種視頻格式直接打開
6) 適屏排版、字體設置等瀏覽增強功能的提供
7) Html5更完整支持。
8) 無系統內核的碎片化問題,更少的兼容性問題
X5雲端服務是通過雲端技術保證用戶在未裝QQ瀏覽器的情況下同樣可以使用X5內核提供的優秀服務,包括雲加速、雲安全、雲轉換三大功能。雲加速是通過首屏加速、智能路由、圖片壓縮等技術保障網頁瀏覽的快、省、悅;雲安全是通過URL安全檢測、JS黑名單管理、負載監控等保障網頁瀏覽的安全穩定;雲轉換是使用URL聚合+XPATH的解決方案,解決移動閱讀難題。
運行環境
1)手機ROM版本高於或等於2.2版本
2)手機RAM大於500M,該RAM值通過手機 /proc/meminfo 文件的MemTotal動態獲取
注:如果不滿足上述條件,SDK會自動切換到系統WebView,SDK使用者不用關心該切換過程。
辨別是否使用x5webview的方法:
顯示網頁文字時,可通過長按選擇文字的標識判斷,如下水滴狀選擇效果是x5webview 的標志:
接入文檔
1、下載X5內核jar包,復制到工程的libs目錄下。
2、將源碼和XML里的系統包和類替換為SDK里的包和類,具體對應如下:
系統內核SDK內核
android.webkit.ConsoleMessage com.tencent.smtt.export.external.interfaces.ConsoleMessage
android.webkit.CacheManager com.tencent.smtt.sdk.CacheManager(deprecated)
android.webkit.CookieManager com.tencent.smtt.sdk.CookieManager
android.webkit.CookieSyncManager com.tencent.smtt.sdk.CookieSyncManager
android.webkit.CustomViewCallback com.tencent.smtt.export.external.interfaces.IX5WebChromeClient.CustomViewCallback
android.webkit.DownloadListener com.tencent.smtt.sdk.DownloadListener
android.webkit.GeolocationPermissions com.tencent.smtt.export.external.interfaces.GeolocationPermissionsCallback
android.webkit.HttpAuthHandler com.tencent.smtt.export.external.interfaces.HttpAuthHandler
android.webkit.JsPromptResult com.tencent.smtt.export.external.interfaces.JsPromptResult
android.webkit.JsResult com.tencent.smtt.export.external.interfaces.JsResult
android.webkit.SslErrorHandler com.tencent.smtt.export.external.interfaces.SslErrorHandler
android.webkit.ValueCallback com.tencent.smtt.sdk.ValueCallback
android.webkit.WebBackForwardList com.tencent.smtt.sdk.WebBackForwardList
android.webkit.WebChromeClient com.tencent.smtt.sdk.WebChromeClient
android.webkit.WebHistoryItem com.tencent.smtt.sdk.WebHistoryItem
android.webkit.WebIconDatabase com.tencent.smtt.sdk.WebIconDatabase
android.webkit.WebResourceResponse com.tencent.smtt.export.external.interfaces.WebResourceResponse
android.webkit.WebSettings com.tencent.smtt.sdk.WebSettings
android.webkit.WebSettings.LayoutAlgorithm com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm
android.webkit.WebStorage com.tencent.smtt.sdk.WebStorage
android.webkit.WebView com.tencent.smtt.sdk.WebView
android.webkit.WebViewClient com.tencent.smtt.sdk.WebViewClient
布局xml里的WebView替換為 com.tencent.smtt.sdk.WebView
3、權限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
4、其他一大堆的不太常用的東西請看官網
測試Activity
public class MainActivity extends ListActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] array = { "普通網頁", "動畫", "視頻", "視頻,美人魚", "福利金融,安全保障", "福利金融,理財學院", "福利金融,介紹", };
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>(Arrays.asList(array))));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
switch (position) {
case 0:
X5WebViewActivity.launche(this, "普通網頁", "http://www.cnblogs.com/baiqiantao/");
break;
case 1:
X5WebViewActivity.launche(this, "動畫", "http://thewebrocks.com/demos/cubes/");
break;
case 2:
X5WebViewActivity.launche(this, "視頻", "http://www.w3school.com.cn/tiy/t.asp?f=html5_av_met_play_pause");
break;
case 3:
X5WebViewActivity.launche(this, "視頻,美人魚", "http://v.qq.com/cover/x/xg95sxi4q7zc4uo.html");
break;
case 4:
X5WebViewActivity.launche(this, "福利金融,安全保障", "http://wap.100cb.cn/static/security.html");
break;
case 5:
X5WebViewActivity.launche(this, "福利金融,理財學院", "http://fulijinrong.kuaizhan.com/58/36/p32451810370302");
break;
case 6:
X5WebViewActivity.launche(this, "福利金融,介紹", "http://wap.flh001.com/static/1minute/index.html");
break;
}
}
}
附件列表
