当前位置: 首页 > news >正文

生活服务信息类网站建设界面设计作品

生活服务信息类网站建设,界面设计作品,做网站的经验,佛山网站开发公司之前开发程序联测测接口的时候#xff0c;因为要和不同的后台人员调接口#xff0c;所以经常要先把程序里的ip地址改成后台人员给我的。每次都要先修改ip地址#xff0c;之后编译运行一下#xff0c;才能测试。但要是换了个后台人员#xff0c;或者同时和2个后台人员测接口…之前开发程序联测测接口的时候因为要和不同的后台人员调接口所以经常要先把程序里的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;Overrideprotected 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*/Overridepublic 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() {Overridepublic 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_changeurl_ma);//修改url地址按钮tv_refresh_ma findViewById(R.id.tv_refresh_ma);//刷新页面按钮wv_showurl_ma findViewById(R.id.wv_showurl_ma);//展示当前url所对应的网站详情}/*** 设置本页的点击方法*/private class MainActivityClicm implements View.OnClickListener {Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.tv_changeurl_ma://修改url地址 // Toast.makeText(MainActivity.this,修改url地址,Toast.LENGTH_SHORT).show();DialogUtils dialogUtils new DialogUtils(MainActivity.this);if (!dialogUtils.isShow()) {//判断弹出框是否已经打开了如果没打开过才运行打开代码dialogUtils.showDialog(这里输入弹出框的展示标题);}break;case R.id.tv_refresh_ma://刷新页面Toast.makeText(MainActivity.this, 刷新页面, Toast.LENGTH_SHORT).show();wv_showurl_ma.loadUrl(PublicInfo.appurl);//设置网络地址tv_url_ma.setText(PublicInfo.appurl);//展示当前的网络地址break;default:break;}}} } 2.DialogUtils.java /*** 这个类里设置弹出框的数据*/ public class DialogUtils extends Dialog {private Context context;private Dialog dialog;private SharedPreferences mSharedPreferences;private TextView tv_iptitle_udg, tv_title_udg, tv_nowurl_udg;private Spinner sp_checkurl_udg;private AppCompatEditText et_ipurl_udg, et_port_udg;private AppCompatButton btn_ok_udg, btn_cancel_udg;private ArrayAdapterString arrayAdapter;//下面这三个参数可以放到项目values下的string中这里为了看着方便就直接写这里了private static final String url_dat 测试环境DAT;private static final String url_uat 测试环境UAT;private static final String url_pre 测试环境准生产;//为SharedPreferences设置一些必要的参数public static final String URLSETTINGINFO URLSETTINGINFO;public static final String URLSETTINGIP URLSETTINGIP;public static final String URLSETTINGPORT URLSETTINGPROT;private SharedPreferences sharedPreferences;public DialogUtils(NonNull Context context) {super(context);this.context context;//拿到上下文sharedPreferences context.getSharedPreferences(URLSETTINGINFO, Context.MODE_PRIVATE);}/*** 显示dialog窗口的方法*/public void showDialog(String title) {dialog new Dialog(context);dialog.setCancelable(false);dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);dialog.setContentView(R.layout.utils_dialog);final Window window dialog.getWindow();window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//设置背景透明initView(dialog);//设置dialog的参数tv_title_udg.setText(title);//设置标题tv_nowurl_udg.setText(当前url地址为 PublicInfo.appurl);//设置当前url地址tv_iptitle_udg.setText(ip地址 PublicInfo.urltitle);initSpinner();//设置spinner参数setClick();//设置点击方法dialog.show();}/*** 设置点击方法*/private void setClick() {btn_ok_udg.setOnClickListener(new DUtilsClick());btn_cancel_udg.setOnClickListener(new DUtilsClick());}/*** 设置spinner参数*/private void initSpinner() {ArrayListString arrayList new ArrayList();arrayList.add(url_dat);arrayList.add(url_uat);arrayList.add(url_pre);//设置适配器arrayAdapter new ArrayAdapterString(context, android.R.layout.simple_spinner_item, arrayList);arrayAdapter.setDropDownViewResource(R.layout.spinner_layout);//这个是设置自定义view时使用的方法如果使用默认就可以的话可以不用写这行代码sp_checkurl_udg.setAdapter(arrayAdapter);sp_checkurl_udg.setOnItemSelectedListener(new DUtilsSpinnerClick());}/*** 设置dialog中的参数** param dialog*/private void initView(Dialog dialog) {tv_title_udg dialog.findViewById(R.id.tv_title_udg);//标题栏tv_nowurl_udg dialog.findViewById(R.id.tv_nowurl_udg);//显示当前url地址sp_checkurl_udg dialog.findViewById(R.id.sp_checkurl_udg);//可以设置默认地址的下拉框tv_iptitle_udg dialog.findViewById(R.id.tv_iptitle_udg);//ip地址段的标题用来显示当前的请求头是hppt还是httpset_ipurl_udg dialog.findViewById(R.id.et_ipurl_udg);//ip地址et_port_udg dialog.findViewById(R.id.et_port_udg);//端口号btn_ok_udg dialog.findViewById(R.id.btn_ok_udg);//确认按钮btn_cancel_udg dialog.findViewById(R.id.btn_cancel_udg);//取消按钮}/*** 设置spinner的点击方法*/private class DUtilsSpinnerClick implements AdapterView.OnItemSelectedListener {Overridepublic void onItemSelected(AdapterView? parent, View view, int position, long id) {String itemname arrayAdapter.getItem(position);switch (itemname) {case url_dat://选择dat标签setInfo(PublicInfo.rul_dat);//根据选择不同的标签为输入框中赋予不同的网络地址break;case url_uat://选择uat标签setInfo(PublicInfo.rul_uat);//根据选择不同的标签为输入框中赋予不同的网络地址break;case url_pre://选择pro标签setInfo(PublicInfo.rul_pro);//根据选择不同的标签为输入框中赋予不同的网络地址break;default:break;}}Overridepublic void onNothingSelected(AdapterView? parent) {Toast.makeText(context, 没有选择任何数据, Toast.LENGTH_SHORT).show();}}/*** 设置弹出框的点击方法*/private class DUtilsClick implements View.OnClickListener {Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_ok_udg://确定按钮btn_ok_udg.setClickable(false);//先关闭点击功能防止用户重复点击saveUrlInfo(et_ipurl_udg.getText().toString().trim(), et_port_udg.getText().toString().trim());//保存用户选择的url地址值setLocalInfo(et_ipurl_udg.getText().toString().trim(), et_port_udg.getText().toString().trim());//将默认的url地址替换为用户修改的urlToast.makeText(context, IP地址修改成功, Toast.LENGTH_SHORT).show();dissmissDialog();//修改完成后关闭弹窗 // android.os.Process.killProcess(android.os.Process.myPid());//IP地址修改成功后关闭程序再次开启时启用新的IP地址(代码可用可不用根据实际情况来决定)break;case R.id.btn_cancel_udg://取消按钮dissmissDialog();//关闭弹出框break;default:break;}}/*** 将默认的url地址替换为用户修改的url*/private void setLocalInfo(String ip, String port) {if (TextUtils.isEmpty(port)) {PublicInfo.appurl PublicInfo.urltitle ip;} else {PublicInfo.appurl PublicInfo.urltitle ip : port;}}}/*** 设置用户选择的url地址值*/private void saveUrlInfo(String ip, String port) {SharedPreferences.Editor editor sharedPreferences.edit();editor.putString(URLSETTINGIP, ip);editor.putString(URLSETTINGPORT, port);editor.commit();}/*** 设置对应的网络地址*/private void setInfo(String baseUrl) {String[] url baseUrl.split(\\:);et_ipurl_udg.setText(url[0]);et_port_udg.setText(url[1]);}/*** 判断dialog是否显示** return*/public boolean isShow() {if (null ! dialog) {return dialog.isShowing();}return false;}/*** 关闭弹出框*/public void dissmissDialog() {if (null ! dialog) {dialog.dismiss();}} } 3.MyApplication.java/*** 调用SharedPreferences时需要这个文件*/ public class MyApplication extends Application {private SharedPreferences sharedPreferences;public static MyApplication application;Overridepublic void onCreate() {super.onCreate();application this;initBaseUrl();//设置默认的url地址值}/*** 设置默认的url地址值*/private void initBaseUrl() {sharedPreferences getSharedPreferences(DialogUtils.URLSETTINGINFO, Context.MODE_PRIVATE);String localip ;String localport ;try {String[] port PublicInfo.baseurl.split(\\:);localip sharedPreferences.getString(DialogUtils.URLSETTINGIP, port[0]);localport sharedPreferences.getString(DialogUtils.URLSETTINGPORT, port[1]);if(TextUtils.isEmpty(localport)){//如果前一次端口号存储为空就不在网址后面追加端口号。PublicInfo.appurl PublicInfo.urltitle localip;//将本地存储的URL地址设置为程序中默认的网络请求地址。}else{PublicInfo.appurl PublicInfo.urltitle localip : localport;//将本地存储的URL地址设置为程序中默认的网络请求地址。}} catch (Exception e) {e.printStackTrace();}} } 4.PublicInfo.java/*** 这个类里存储需要调用的地址*/ public class PublicInfo {public static String urltitle https://;public static String rul_dat www.baidu.com:80;public static String rul_uat www.zhihu.com:80;public static String rul_pro www.sina.com:80;public static String basetitleurltitle;//设置默认的请求头(http或者https)public static String baseurlrul_dat;//设置默认地址(dat,uat或者其他的)public static String appurlbasetitlebaseurl;//这里设置app的默认网络请求地址} 5.activity_main.xml?xml version1.0 encodingutf-8? androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:text登录界面 /TextViewandroid:idid/tv_url_maandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginLeft10dpandroid:layout_marginTop20dpandroid:text当前网络地址 /RelativeLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop20dpTextViewandroid:idid/tv_changeurl_maandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:padding10dpandroid:background#00ff00android:layout_marginLeft30dpandroid:text修改地址 /TextViewandroid:idid/tv_refresh_maandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:padding10dpandroid:background#ff0000android:layout_alignParentRighttrueandroid:layout_marginRight30dpandroid:text刷新页面 //RelativeLayoutWebViewandroid:idid/wv_showurl_maandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_weight1//LinearLayout/androidx.constraintlayout.widget.ConstraintLayout6.spinner_layout.xml?xml version1.0 encodingutf-8? TextView xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textspinner里面每个选项的布局android:gravitycenterandroid:padding10dp/TextView 7.utils_dialog.xml?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_width340dpandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:background#ffffffandroid:orientationverticalTextViewandroid:idid/tv_title_udgandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:padding10dpandroid:text标题栏android:textSize20sp /TextViewandroid:idid/tv_nowurl_udgandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:padding10dpandroid:text当前的url地址 /Spinnerandroid:idid/sp_checkurl_udgandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:layout_marginTop10dp /LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalandroid:padding10dpLinearLayoutandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:orientationverticalandroid:layout_weight3TextViewandroid:idid/tv_iptitle_udgandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textip地址/androidx.appcompat.widget.AppCompatEditTextandroid:idid/et_ipurl_udgandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:hintip地址 //LinearLayoutLinearLayoutandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:orientationverticalandroid:layout_weight1android:gravitycenterTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text端口号/androidx.appcompat.widget.AppCompatEditTextandroid:idid/et_port_udgandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignParentRighttrueandroid:hint端口号 //LinearLayout/LinearLayoutRelativeLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:padding10dpandroidx.appcompat.widget.AppCompatButtonandroid:idid/btn_ok_udgandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text确定 /androidx.appcompat.widget.AppCompatButtonandroid:idid/btn_cancel_udgandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignParentRighttrueandroid:text取消 //RelativeLayout/LinearLayout8.AndroidManifest.xml这个很重要一个是添加了网路权限另一个是将app默认的Application设置为上面自己设置的MyApplication这个是很重要的别偷懒啊?xml version1.0 encodingutf-8? manifest xmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.example.loginactivity!-- 设置用户网络权限--uses-permission android:nameandroid.permission.INTERNET /applicationandroid:name.MyApplicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/AppThemeactivity android:name.MainActivityintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity/application/manifest
文章转载自:
http://www.morning.qphgp.cn.gov.cn.qphgp.cn
http://www.morning.knnhd.cn.gov.cn.knnhd.cn
http://www.morning.nqcts.cn.gov.cn.nqcts.cn
http://www.morning.gbqgr.cn.gov.cn.gbqgr.cn
http://www.morning.kmcby.cn.gov.cn.kmcby.cn
http://www.morning.lqlfj.cn.gov.cn.lqlfj.cn
http://www.morning.pkpqh.cn.gov.cn.pkpqh.cn
http://www.morning.kfrhh.cn.gov.cn.kfrhh.cn
http://www.morning.yhjrc.cn.gov.cn.yhjrc.cn
http://www.morning.qbwtb.cn.gov.cn.qbwtb.cn
http://www.morning.fpbj.cn.gov.cn.fpbj.cn
http://www.morning.cwknc.cn.gov.cn.cwknc.cn
http://www.morning.jntdf.cn.gov.cn.jntdf.cn
http://www.morning.mzkn.cn.gov.cn.mzkn.cn
http://www.morning.rnnq.cn.gov.cn.rnnq.cn
http://www.morning.rgrys.cn.gov.cn.rgrys.cn
http://www.morning.zyrcf.cn.gov.cn.zyrcf.cn
http://www.morning.psqs.cn.gov.cn.psqs.cn
http://www.morning.zdhnm.cn.gov.cn.zdhnm.cn
http://www.morning.yrmgh.cn.gov.cn.yrmgh.cn
http://www.morning.snzgg.cn.gov.cn.snzgg.cn
http://www.morning.yxwcj.cn.gov.cn.yxwcj.cn
http://www.morning.rtsdz.cn.gov.cn.rtsdz.cn
http://www.morning.ncfky.cn.gov.cn.ncfky.cn
http://www.morning.rsjf.cn.gov.cn.rsjf.cn
http://www.morning.rgfx.cn.gov.cn.rgfx.cn
http://www.morning.jmtrq.cn.gov.cn.jmtrq.cn
http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn
http://www.morning.fydsr.cn.gov.cn.fydsr.cn
http://www.morning.rdzgm.cn.gov.cn.rdzgm.cn
http://www.morning.rbhcx.cn.gov.cn.rbhcx.cn
http://www.morning.snnb.cn.gov.cn.snnb.cn
http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn
http://www.morning.rfgc.cn.gov.cn.rfgc.cn
http://www.morning.klyzg.cn.gov.cn.klyzg.cn
http://www.morning.txfxy.cn.gov.cn.txfxy.cn
http://www.morning.wkxsy.cn.gov.cn.wkxsy.cn
http://www.morning.jqllx.cn.gov.cn.jqllx.cn
http://www.morning.fqpyj.cn.gov.cn.fqpyj.cn
http://www.morning.wtsr.cn.gov.cn.wtsr.cn
http://www.morning.zknxh.cn.gov.cn.zknxh.cn
http://www.morning.nwcgj.cn.gov.cn.nwcgj.cn
http://www.morning.mqbdb.cn.gov.cn.mqbdb.cn
http://www.morning.snjpj.cn.gov.cn.snjpj.cn
http://www.morning.nrqnj.cn.gov.cn.nrqnj.cn
http://www.morning.nclps.cn.gov.cn.nclps.cn
http://www.morning.bfmq.cn.gov.cn.bfmq.cn
http://www.morning.lkpzx.cn.gov.cn.lkpzx.cn
http://www.morning.yqpck.cn.gov.cn.yqpck.cn
http://www.morning.fbhmn.cn.gov.cn.fbhmn.cn
http://www.morning.tfrmx.cn.gov.cn.tfrmx.cn
http://www.morning.mpszk.cn.gov.cn.mpszk.cn
http://www.morning.lsnnq.cn.gov.cn.lsnnq.cn
http://www.morning.hmnhp.cn.gov.cn.hmnhp.cn
http://www.morning.fstesen.com.gov.cn.fstesen.com
http://www.morning.mrxgm.cn.gov.cn.mrxgm.cn
http://www.morning.nypgb.cn.gov.cn.nypgb.cn
http://www.morning.wklyk.cn.gov.cn.wklyk.cn
http://www.morning.mqxzh.cn.gov.cn.mqxzh.cn
http://www.morning.kfbth.cn.gov.cn.kfbth.cn
http://www.morning.lgwpm.cn.gov.cn.lgwpm.cn
http://www.morning.mnkz.cn.gov.cn.mnkz.cn
http://www.morning.jykzy.cn.gov.cn.jykzy.cn
http://www.morning.wptdg.cn.gov.cn.wptdg.cn
http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn
http://www.morning.fkgqn.cn.gov.cn.fkgqn.cn
http://www.morning.xjnjb.cn.gov.cn.xjnjb.cn
http://www.morning.lwgsk.cn.gov.cn.lwgsk.cn
http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn
http://www.morning.nsncq.cn.gov.cn.nsncq.cn
http://www.morning.kqgsn.cn.gov.cn.kqgsn.cn
http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn
http://www.morning.zzhqs.cn.gov.cn.zzhqs.cn
http://www.morning.rsnd.cn.gov.cn.rsnd.cn
http://www.morning.rdtq.cn.gov.cn.rdtq.cn
http://www.morning.rcgzg.cn.gov.cn.rcgzg.cn
http://www.morning.wkmyt.cn.gov.cn.wkmyt.cn
http://www.morning.qsctt.cn.gov.cn.qsctt.cn
http://www.morning.shxrn.cn.gov.cn.shxrn.cn
http://www.morning.skksz.cn.gov.cn.skksz.cn
http://www.tj-hxxt.cn/news/237546.html

相关文章:

  • 永春建设局网站找做网站的
  • 洪涛怎么样海城市建设网站网站开发 c
  • 常州网站建设 光龙wordpress主题添加评论框
  • 顶呱呱网站开发如何破解wordpress主题
  • godaddy 网站怎么建设企业建设网站选择
  • 张家港网站建设培训学校西宁网站建设嘉荐君博l
  • 佛山做app网站暴雪最新消息
  • 做静态网站的步骤平面设计师的网站
  • 益阳seo网站建设镇江模板网站
  • 上海cms网站建设想自己做网站做推广
  • 上海网站设计合理柚v米科技重庆网站房地产
  • 网站备案负责人照片陆丰网页设计
  • 网站无备案号怎么办免费一键生成短链接
  • 社交网站备案怎样查询自己购房网签成功
  • 做国内学历公证的网站郑州网站设计收费
  • 深圳网站建设好吗私人定制app
  • 乐山做网站怎么成立网站
  • 南宁网站搜索引腾脉网建站
  • 目前哪些企业需要做网站建设的呢建设局是什么单位
  • 网站建设需要这些工具和软件网站用哪个做
  • 工程施工行业在哪个网站容易找事做郑州企业建网站制作
  • 衡水做网站改版百度收录查询入口
  • 青创云网站建设为外国人做非法网站
  • 中国书画画廊网站模板网站有利于seo的细节
  • 小型网站建设的经验百度投放广告
  • 古董专家官方网站微信网站建设支出
  • 临淄关键词网站优化哪家好自己做个网站的流程
  • 网站怎么优化推荐佛山网站建设流程
  • 丽水市建设监理协会网站在哪里内容平台
  • 那家网站建设好小生互联免费主机