经历2周多的时间 终于是完成了还算可以的android 整体案例了,分享下给大家  也希望自己有时间回过头来看看当初研究android的纠结心情。痛苦的经历是开发android 大部分都是在网上找解决方式 各种 错误 再接着找 解决方法  这个时候真的很蛋疼  现在终于能应用于项目了。

PS:我们的项目时 套壳 首页用android 的 其他都是html5 完成  这就需要 学习 交互的问题了  废话不多说了 也没别的  想发牢骚下   O(∩_∩)O~

导入 ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar

package com.example.user.testwap;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.JavascriptInterface;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast; import org.json.JSONArray;
import org.json.JSONObject; import java.util.List;
import java.util.Timer;
import java.util.TimerTask; import static android.net.Uri.*; public class MainActivity extends AppCompatActivity {
WebView webview;
private PersonService service;
private Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//实例化WebView对象
webview = new WebView(this);
service =new PersonService();
//设置WebView属性,能够执行Javascript脚本 启用javascript支持
webview.getSettings().setJavaScriptEnabled(true); //启用 LocalStorage 支持
webview.getSettings().setDomStorageEnabled(true);
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
webview.getSettings().setAppCachePath(appCachePath);
webview.getSettings().setAllowFileAccess(true);
webview.getSettings().setAppCacheEnabled(true); //new类名,交互访问时使用的别名
webview.addJavascriptInterface(new JavaScriptInterface(), "demo");
//js弹出
webview.setWebChromeClient(new WebChromeClient());
try {
//设置打开的页面地址
webview.loadUrl("http://192.168.16.39:8901/"); webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
view.loadUrl(url);
return true;
} }); }
catch(Exception ex)
{
ex.printStackTrace();
}
setContentView(webview);
}
public final  class JavaScriptInterface {
@JavascriptInterface
public void getPersonList(){
mHandler.post(new Runnable() {
public void run() { webview.loadUrl("javascript:wave()");//执行html布局文件中的javascript函数代码-- } catch (Exception e) {
// TODO: handle exception
}
}
});
}
@JavascriptInterface
public void postPay(String data) {
String dd = data; }
@JavascriptInterface
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
if (message.length() != 0) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("From JavaScript").setMessage(message).show();
result.cancel();
return true;
}
return false;
}
//打电话的方法
@JavascriptInterface
public void call(String mobile){
Toast.makeText(MainActivity.this, mobile, Toast.LENGTH_LONG).show();
//Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ mobile));
//startActivity(intent);
}
}
@JavascriptInterface  //必须加入这个注解  否则可能app 与 html 5 不能交互
html 页面
<input type='button' onclick='window.demo.call("335623365")' value='app存值' /> // 可以调用到app 的 call 方法
<script type="text/javascript">

function wave() {
alert(123456);

}

</script>

html5 页面的js 放在哪自己安排 只要是html页面就行了 别放app里就好

最后加入权限在AndroidManifest.xml 页面

<!-- 联网权限 -->
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- 读写权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 这个整体案例 集合了 localstorage 本地存储 app与html5 交互 弹窗

最新文章

  1. prolog 阶段总结
  2. 10款免费的响应式 WordPress 主题下载
  3. 操作系统开发系列—13.h.延时操作
  4. How to set colors of HTML tables
  5. 编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码
  6. HDU 4122 Alice&#39;s mooncake shop 单调队列优化dp
  7. JSP特点
  8. winform(C#)拖拽实现获得文件路径
  9. ios录音Demo
  10. 转: 【Java并发编程】之十七:深入Java内存模型—内存操作规则总结
  11. JavaScript基础回顾
  12. lwip Light Weight (轻型)IP协议
  13. Delphi基础-数据类型
  14. Markdown编辑器editor.md的使用---markdown上传图片
  15. JavaScript夯实基础系列(四):原型
  16. 聚类——K-means
  17. koa入门
  18. Hive 创建表
  19. python之pandas简单介绍及使用(一)
  20. Razor 中的@rendersection

热门文章

  1. Java的接口和抽象类深入理解
  2. 《Cracking the Coding Interview》——第18章:难题——题目12
  3. 《Cracking the Coding Interview》——第17章:普通题——题目11
  4. 《Cracking the Coding Interview》——第11章:排序和搜索——题目4
  5. GLIBCXX3.4.21 not find
  6. php 代码段执行时间
  7. (转\整)UE4游戏优化 多人大地型游戏的优化(三)GPU的优化
  8. (源)Post Material实现后期DitanceFog
  9. ./configure, make, sudo make install 的含义
  10. awk学习笔记