【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();
//当前被操控的WebViewWebView 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)
@Overridepublic 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