赞
踩
之前开发程序联测测接口的时候,因为要和不同的后台人员调接口,所以经常要先把程序里的ip地址改成后台人员给我的。每次都要先修改ip地址,之后编译运行一下,才能测试。但要是换了个后台人员,或者同时和2个后台人员测接口,又要再修改ip后重新编译,重新运行,很繁琐,包括后期测试也是一样。
测试人员总是问我能不能弄个功能,可以让他们在dat环境下测完一个功能后,可以在应用里手动切换网络地址,继续测uat网络环境下此功能是否正常,之前忙着别的事儿,而且对这个功能也没什么头绪,就一直没弄。最近时间闲下来了,而且关于这个功能,我也有了一些自己的见解,所以在此把这个功能展示一下,嘿嘿。
多余的话就不说了,直接上图~
核心原理:这个输入框里可以随时设置网络地址和端口号(如果不需要输入端口号,直接空着就行),设置的网址会在点击保存按钮后直接替换app里面通用的网络地址前缀,同时将数据存入SharedPreferences中,每次启动app时,都会从Application中先检查SharedPreferences中是否存在保存的数据,如果有存储的数据,就将通用url修改成存储的url,达到这次保存,下次就不用修改了的功能。
下面开始直接贴代码
1.MainActivity.java
public class MainActivity extends AppCompatActivity { private TextView tv_url_ma, tv_changeurl_ma, tv_refresh_ma; private WebView wv_showurl_ma; private static final int INTERNETCODE = 001; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init();//代码初始化 tv_url_ma.setText(PublicInfo.appurl); setClick();//设置点击方法 checkPermissions();//检查用户是否给予网络权限,如果没有,就不启用 initwv();//webview设置 } /*8 检查用户是否给予网络权限 */ private void checkPermissions() { if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {//用户没有进行网络授权 ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.INTERNET}, INTERNETCODE); return; } else { //已经获取到网络权限,可以显示默认网址中的数据 wv_showurl_ma.loadUrl(PublicInfo.appurl);//设置网络地址 } } /** * 用户权限返回结果 * * @param requestCode * @param permissions * @param grantResults */ @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case INTERNETCODE://网络权限的返回值 //if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {//证明得到了用户授权 checkPermissions();//再次调用检查权限的方法,如果没问题,就会启动网络请求 } else { Toast.makeText(MainActivity.this, "当前设备未获取网络权限,无法联网", Toast.LENGTH_SHORT).show(); } break; default: break; } } /** * webView设置 */ private void initwv() { wv_showurl_ma.getSettings().setJavaScriptEnabled(true);//如果网页中使用js,不加这行代码不显示 wv_showurl_ma.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // return super.shouldOverrideUrlLoading(view, url); view.loadUrl(url); return true;//返回值为true时在WebView中打开,为false时调用浏览器打开 } }); } /** * 设置点击方法 */ private void setClick() { tv_changeurl_ma.setOnClickListener(new MainActivityClicm()); tv_refresh_ma.setOnClickListener(new MainActivityClicm()); } /** * 代码初始化 */ private void init() { tv_url_ma = findViewById(R.id.tv_url_ma);//url地址展示 tv_changeurl_ma = findViewById(R.id.tv_chan
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。