Android使用騰訊X5內(nèi)核WebView

版權(quán)聲明:本文為博主原創(chuàng)文章宪肖,未經(jīng)博主允許不得轉(zhuǎn)載表制。

第一步:下載jar包添加到項(xiàng)目

需要去騰訊瀏覽服務(wù)官網(wǎng)下載X5內(nèi)核jar包

第二步:添加權(quán)限

<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" /> 

第三步:直接使用

很多文章中說(shuō)要用到application,其實(shí)不用也是可以的匈庭。在application中做設(shè)置只是增加了預(yù)先加載的功能夫凸。
MainActivity.java:
public class MainActivity extends Activity {

private X5WebView mWebView;

private String mUrl = "http://www.baidu.com/";

private RelativeLayout rlMore;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    rlMore = (RelativeLayout) this.findViewById(R.id.rl_more);
    rlMore.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v)
        {
            Intent intent = new Intent(MainActivity.this,UrlSetActivity.class);
            MainActivity.this.startActivityForResult(intent,1);
            return false;
        }
    });

    rlMore.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            loadWebUrl();
        }
    });

    mWebView = (X5WebView) this.findViewById(R.id.awwt_webview);
    mWebView.setWebViewClient(client);

}


private void loadWebUrl() {
    if(null != mUrl && mUrl.length() > 0)
    {
        mWebView.loadUrl(mUrl);
    }

}

@Override
protected void onResume()
{
    super.onResume();
    String preferUrl = SharePreferUtils.getSharePreferValue(this,"WEB_URL", "main_page");
    if(null != preferUrl && preferUrl.length() > 0)
    {
        mUrl = preferUrl;
    }
    mWebView.loadUrl(mUrl);
}

private WebViewClient client = new WebViewClient() {
    /**
     * 防止加載網(wǎng)頁(yè)時(shí)調(diào)起系統(tǒng)瀏覽器
     */
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        view.loadUrl(url);
        return true;
    }

    public void onReceivedHttpAuthRequest(WebView webview,
                                          com.tencent.smtt.export.external.interfaces.HttpAuthHandler httpAuthHandlerhost, String host,
                                          String realm) {
        boolean flag = httpAuthHandlerhost.useHttpAuthUsernamePassword();
    }

    @Override
    public void onPageFinished(WebView webView, String s)
    {
        super.onPageFinished(webView, s);
    }

    @Override
    public void onReceivedError(WebView webView, int i, String s, String s1)
    {
        System.out.println("***********onReceivedError ************" );
        super.onReceivedError(webView, i, s, s1);
    }

    @Override
    public void onReceivedHttpError(WebView webView, WebResourceRequest webResourceRequest, WebResourceResponse webResourceResponse) {
        System.out.println("***********onReceivedHttpError ************" );
        super.onReceivedHttpError(webView, webResourceRequest, webResourceResponse);
    }
};


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if(resultCode == RESULT_OK)
    {
        if(null != data)
        {
           String tUrl = data.getStringExtra("WEB_URL");
            if(null != tUrl && tUrl.length() > 0)
            {
                mUrl = tUrl;
                mWebView.loadUrl(mUrl);
                SharePreferUtils.setSharePreferValue(this,"WEB_URL", "main_page",mUrl);
            }
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}

@Override
protected void onDestroy()
{
    if (mWebView != null)
    {
        mWebView.destroy();
    }
    super.onDestroy();
}
}

代碼十分簡(jiǎn)單,也很容易理解阱持。在這個(gè)我加了個(gè)跳轉(zhuǎn)類來(lái)實(shí)現(xiàn)訪問(wèn)其他網(wǎng)頁(yè),其實(shí)就是想測(cè)測(cè)X5的性能

 public class UrlSetActivity extends Activity {
private ImageView ivBack;
private EditText edContent;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_url_set);
    edContent = (EditText) this.findViewById(R.id.ampf_et_content);
    findViewById(R.id.rl_more).setVisibility(View.GONE);
    ivBack = (ImageView) this.findViewById(R.id.iv_back);
    ivBack.setVisibility(View.VISIBLE);
    ivBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            doBack();
        }
    });

    findViewById(R.id.ampf_button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(edContent.getText().toString().length() > 0) {
                Intent intent = UrlSetActivity.this.getIntent();
                intent.putExtra("WEB_URL",edContent.getText().toString());
                UrlSetActivity.this.setResult(RESULT_OK, intent);
                UrlSetActivity.this.finish();
            }else{
                Toast.makeText(UrlSetActivity.this,"網(wǎng)址不能為空",Toast.LENGTH_SHORT).show();
            }
        }
    });

}


@Override
public void onBackPressed()
{
    doBack();
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
    {
        doBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

protected void doBack()
{
    UrlSetActivity.this.setResult(RESULT_OK, null);
    finish();
}
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末魔熏,一起剝皮案震驚了整個(gè)濱河市衷咽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒜绽,老刑警劉巖镶骗,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異躲雅,居然都是意外死亡鼎姊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門相赁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)相寇,“玉大人,你說(shuō)我怎么就攤上這事钮科』缴溃” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵睹酌,是天一觀的道長(zhǎng)竖慧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)坏逢,這世上最難降的妖魔是什么赃承? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任妙黍,我火速辦了婚禮,結(jié)果婚禮上瞧剖,老公的妹妹穿的比我還像新娘拭嫁。我一直安慰自己,他們只是感情好筒繁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布噩凹。 她就那樣靜靜地躺著,像睡著了一般毡咏。 火紅的嫁衣襯著肌膚如雪驮宴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天呕缭,我揣著相機(jī)與錄音堵泽,去河邊找鬼。 笑死恢总,一個(gè)胖子當(dāng)著我的面吹牛迎罗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播片仿,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼纹安,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了砂豌?” 一聲冷哼從身側(cè)響起厢岂,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阳距,沒(méi)想到半個(gè)月后塔粒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡筐摘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年卒茬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咖熟。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡圃酵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出球恤,到底是詐尸還是另有隱情辜昵,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布咽斧,位于F島的核電站堪置,受9級(jí)特大地震影響躬存,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舀锨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一岭洲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坎匿,春花似錦盾剩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至承桥,卻和暖如春驻粟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凶异。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工蜀撑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剩彬。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓酷麦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親喉恋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沃饶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容