【android】Android之h5游戏开发

Installation failed with message Invalid File:

在这里插入图片描述

这个问题 在今天的学习中出现了!!

究其原因 由于安卓开发一般都是很久才会启用一次项目

而频繁的更换项目可能会出现包名相同的情况

所以AndroidStudio 自动判断这个项目已经安装过了 然后让你不要安装(这也是AndroidStudio 的新特性)

解决方案:
在这里插入图片描述

===============================================================================

目前的主流软件(京东 淘宝 等都是采用这种开发模式 节约成本 而不必开发软件太去照顾不同的操作系统 Android ,IOS ) 可以使用Web来开发!

本人是手机开热点 与电脑相连 故启动Tomcat运行软件的时候要先查询到电脑连接热点时候的ip地址

(怎么查手机的ip地址 我就不说了 百度上有 就在关于手机->状态信息 里面就有)
在这里插入图片描述

然后介绍一下查询电脑的ip地址的方法

开始+R -> cmd ->ipconfig
在这里插入图片描述

使用的时候用电脑 提供的ip地址就可以了

关于启动Tomcat 然后 webapps目录下 放html 文件之类的我就不多说了

基本操作弄完以后 可以开始我们的代码分析了

WebView

先看xml
在这里插入图片描述

在看java中的

1.方法 指的是界面不会跳转到浏览器中 而是实现超链接 (返回值要是 false)

方法之前的这行代码:

  @SuppressLint("NewApi")

解释如下:
在这里插入图片描述

2.

WebSettings 的获取以及使用

WebSettings settings = wv.getSettings();

//当前被操控的WebView

WebView currWV;

//对指定WebView进行初始化的方法

@SuppressLint("NewApi")

public void initWebView(WebView wv)

{

//设置WebView中的超链接被点击时不跳转到系统的浏览器显示超链接指向的页面

wv.setWebViewClient

(

new WebViewClient()

{

@Override

public boolean shouldOverrideUrlLoading(WebView wv, String url)

{//第一个入口参数为显示新页面的WebView

//对WebView进行初始化

initWebView(wv);

//设置此WebView为当前WebView

MyActivity.this.currWV =wv;

//返回false告诉系统由此WebView对URL进行处理

return false;

}

}

);

//获取设置对象

WebSettings settings = wv.getSettings();

//设置字体显示的缩放比,默认为100

settings.setTextZoom(25);

//设置不使用缓存

settings.setCacheMode(WebSettings.LOAD_NO_CACHE);

//设置禁用横向滚动条

wv.setHorizontalScrollBarEnabled(false);

//设置启用纵向滚动条

wv.setVerticalScrollBarEnabled(true);

}

3.加载主页的方法

currWV.loadUrl("http://"+host+":"+port+"/CityTour/city_list.html");

4.清楚缓存以及重新加载的方法

currWV.clearCache(true);

currWV.reload();

在这里插入图片描述

5.返回上一个界面

currWV.goBack();

====================================================================

下面介绍一下逻辑以及特殊的地方

WebView 与Activity不同 返回时的逻辑不一样

Activity返回是一个Activity一个Activity的返回 (可本Demo的Activity只有一个)

而 WebView 是返回到上一个界面 (只有 return true 的时候才执行了返回上一层的命令 退出应用的时候都是返回false)

@Override

public boolean onKeyDown(int keyCode, KeyEvent event)

{

//如果按下的是返回键

if(keyCode==KeyEvent.KEYCODE_BACK)

{

//如果当前WebView可以返回上一层页面

if(currWV.canGoBack())

{

//获取当前的URL

String urlStr= currWV.getUrl();

//如果是首页

if(urlStr.endsWith("city_list.html"))

{

//退出应用

this.finish();

return false;

}

else

{

//返回上一层页面

currWV.goBack();

return true;

}

}

else

{

//退出应用

this.finish();

return false;

}

}

return false;

}

=======================================================================

源码

只是实现了一个很简单的静态小Demo

public class MyActivity extends Activity {

//static String host="192.168.8.2";

// static String host="10.128.76.108";

static String host="192.168.43.250";

static String port="8080";

//当前被操控的WebView

WebView currWV;

//对指定WebView进行初始化的方法

@SuppressLint("NewApi")

public void initWebView(WebView wv)

{

//设置WebView中的超链接被点击时不跳转到系统的浏览器显示超链接指向的页面

wv.setWebViewClient

(

new WebViewClient()

{

@Override

public boolean shouldOverrideUrlLoading(WebView wv, String url)

{//第一个入口参数为显示新页面的WebView

//对WebView进行初始化

initWebView(wv);

//设置此WebView为当前WebView

MyActivity.this.currWV =wv;

//返回false告诉系统由此WebView对URL进行处理

return false;

}

}

);

//获取设置对象

WebSettings settings = wv.getSettings();

//设置字体显示的缩放比,默认为100

settings.setTextZoom(25);

//设置不使用缓存

settings.setCacheMode(WebSettings.LOAD_NO_CACHE);

//设置禁用横向滚动条

wv.setHorizontalScrollBarEnabled(false);

//设置启用纵向滚动条

wv.setVerticalScrollBarEnabled(true);

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event)

{

//如果按下的是返回键

if(keyCode==KeyEvent.KEYCODE_BACK)

{

//如果当前WebView可以返回上一层页面

if(currWV.canGoBack())

{

//获取当前的URL

String urlStr= currWV.getUrl();

//如果是首页

if(urlStr.endsWith("city_list.html"))

{

//退出应用

this.finish();

return false;

}

else

{

//返回上一层页面

currWV.goBack();

return true;

}

}

else

{

//退出应用

this.finish();

return false;

}

}

return false;

}

@SuppressLint("NewApi")

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//获取WebView

currWV = (WebView) findViewById(R.id.wv01);

//初始化WebView

initWebView(currWV);

//加载主页

currWV.loadUrl("http://"+host+":"+port+"/CityTour/city_list.html");

//获取刷新按钮

Button button = (Button) findViewById(R.id.button1);

button.setOnClickListener(

//刷新按钮监听器

(v)->

{

//清除缓存

currWV.clearCache(true);

//重新加载

currWV.reload();

}

);

button = (Button) findViewById(R.id.button2);

button.setOnClickListener(

//返回按钮的监听器

v->{currWV.goBack();}

);

}

}

以上是 【android】Android之h5游戏开发 的全部内容, 来源链接: utcz.com/a/68874.html

回到顶部