天天看點

Android和H5的互動問題

  1、如果Android中的資料傳輸到H5界面中,目前是需要記錄登入狀态。隻需要在h5接收的連結中添加token值:

例如:

String token = SharedPreferencesUtils.getString("token", "", getActivity());
if (!TextUtils.isEmpty(token)) {
    Intent intent = new Intent(getActivity(), HtmlActivity.class);
    intent.putExtra("url", "http://www.ceshi.com/activity/enterRotate.html?token=" + token_two);
    intent.putExtra("title", "測試");
    startActivity(intent);
    getActivity().overridePendingTransition(R.anim.activity_next_in, R.anim.activity_next_out);
}      

這樣就能夠将你的Android端登入狀态帶過去,在H5處理的時候就不會再次讓使用者登入。

  2、H5内部頁面跳轉,怎麼控制點選一次傳回按鈕直接傳回到Android界面的問題。主要的使用webview中的cangoBack方法。

     首先你仍然需要處理Android機中底部的傳回按鈕。

    重寫onkeyDown方法:如下:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && wvdetail.canGoBack()) {
        wvdetail.goBack();// 傳回前一個頁面
        return true;
    }      

      然後你的H5頁面的title_bar仍然是你自己設定的,設定傳回按鈕的onclick事件:

Android和H5的互動問題

    代碼實作如下:

mFrBack.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (wvdetail.canGoBack()) {
            wvdetail.goBack();
        } else {
            finish();
        }
    }
});



這些代碼是放在你加載H5裡的Activity中的,而且需要有WebView控件哦!!!總結一下漲姿勢