package com.pxkj.jwzs;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import androidx.annotation.Nullable;

import java.io.IOException;

public class FirstActivity extends BaseActivity {

    private TextView tvApiResult;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // 必须先加载布局，再初始化控件

        // 初始化TextView（关键！绑定布局中的tv_api_result）
//        tvApiResult = findViewById(R.id.tv_api_result);

//        Button btnTestApi = findViewById(R.id.btn_test_api);
//        btnTestApi.setOnClickListener(v -> {
//            tvApiResult.setText("测试中..."); // 此时tvApiResult已初始化，不会空指针
//            fetchData();
//        });


//        WebView webView = findViewById(R.id.webview);
//        webView.getSettings().setJavaScriptEnabled(true); // 启用JS
//        webView.setWebViewClient(new WebViewClient()); // 防止跳转浏览器
////        webView.loadUrl("http://218.92.207.242:50022/"); // 加载H5地址
//        webView.loadUrl("http://50.146.63.127:82/app/"); // 加载H5地址
//        webView.getSettings().setDomStorageEnabled(true);
//        webView.clearCache(true); // 清除缓存
//        webView.getSettings().setUseWideViewPort(true);
//        webView.getSettings().setLoadWithOverviewMode(true);


        init(); // 调用父类方法
    }


    private void fetchData() {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://50.146.63.127:82/app/api/")
//                .baseUrl("http://218.92.207.242:50021/gwgl/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        ApiService service = retrofit.create(ApiService.class);
        Call<ResponseBody> call = service.getData(); // 假设ApiService中定义的接口是正确的

        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                // 确保tvApiResult不为null（双重保险）
                if (tvApiResult == null) return;

                if (response.isSuccessful()) {
                    try {
                        String result = response.body().string();
                        tvApiResult.setText("请求成功:\n" + result);
                    } catch (IOException e) {
                        tvApiResult.setText("响应解析失败:\n" + e.getMessage());
                    }
                } else {
                    tvApiResult.setText("HTTP错误:\n状态码=" + response.code());
                }
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                // 确保tvApiResult不为null（双重保险）
                if (tvApiResult == null) return;

                // 显示具体错误原因（如网络不可达、超时等）
                String errorMsg = "请求失败:\n";
                if (t.getMessage() != null) {
                    errorMsg += t.getMessage();
                } else {
                    errorMsg += "未知错误";
                }
                tvApiResult.setText(errorMsg);
            }
        });
    }

    @Override
    protected void refresh() {

        String targetUrl = SpUtils.getString(this, "TARGET_URL", "");
        if (!TextUtils.isEmpty(targetUrl)) {
            WebView webView = findViewById(R.id.webview);
            webView.loadUrl(targetUrl); // 加载绑定服务ID的网址
        } else {
            Toast.makeText(this, "未获取到有效网址", Toast.LENGTH_SHORT).show();
        }
        // 寻址成功后，在这跳转下个页面
        startActivity(new Intent(this, MainActivity.class));
    }
}
