Atitit.android webview h5运行环境总结
Atitit.android webview h5运行环境总结
3.1. Swt是BrowserFunction 机制,绑定了个自定义方法2
3.1.1. nativeswing的实现 预绑定一个sendNSCommand方法2
1. WebView 的使用
2. Js调用java
browExt.play();
webView.addJavascriptInterface(new browExtObj(this), "browExt");
webView.loadUrl(url);
实现模式是绑定一个可以自定义浏览器对象
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
3. Js调用java 跟个swt的比较
3.1. Swt是BrowserFunction 机制,绑定了个自定义方法
new CallJavaPaa1(browser, "sendNSCommand");
BrowserFunction 是个非常有意思的类,它可以为 Browser 永久绑定一个 JavaScript 方法,它的构造函数是 BrowserFunction(browser:Browser, name:String),其中 browser 代表 Browser 对象,而 name 则代表绑定该浏览器的 JavaScript 方法名,定义了该 BrowserFunction 对象以后,任何在 Browser 显示的网页,都可以访问名为 name 的 JavaScript 方法。
3.1.1. nativeswing的实现 预绑定一个sendNSCommand方法
sendNSCommand('play',video);
4. code
package com.example.atiplat_vodcp;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.URLEncoder;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.widget.Toast;
public class browExtObj {
public static String getTrace(Throwable t) {
StringWriter stringWriter = new StringWriter();
PrintWriter writer = new PrintWriter(stringWriter);
t.printStackTrace(writer);
StringBuffer buffer = stringWriter.getBuffer();
return buffer.toString();
}
MainActivity mainActivity;
public browExtObj(MainActivity mainActivity2) {
mainActivity = mainActivity2;
}
@JavascriptInterface //sdk17版本以上加上注解 solu click btn ma fein ..
public void play() {
try {
String mv = "smb://192.168.2.106/e/非蓝光/大头儿子小头爸爸/新大头儿子和小头爸爸之秘密计划.mp4";
Log.v("::::mv in html ", mv);
Toast.makeText(mainActivity,
"play in html,mv:" + new File(mv).exists(),
Toast.LENGTH_LONG).show();
String mv2 = Environment.getExternalStorageDirectory().getPath()
+ "/Test_Movie.m4v";
mv="http://127.0.0.1:7788/?file="+URLEncoder.encode(mv,"utf-8");
//Log.v("URI html:::::::::", uri.toString());
Uri uri = Uri.parse(mv);
// 调用系统自带的播放器
Intent intent = new Intent(Intent.ACTION_VIEW);
Log.v("URI html:::::::::", uri.toString());
// intent.setData(uri);
intent.setDataAndType(uri, "video/*");
mainActivity.startActivity(intent);
System.out.println("--form_load finish");
} catch (Throwable e) {
Log.i("::::::::::::exp", getTrace(e));
}
}
5. Webview code
WebView webView;
public static String getTrace(Throwable t) {
StringWriter stringWriter= new StringWriter();
PrintWriter writer= new PrintWriter(stringWriter);
t.printStackTrace(writer);
StringBuffer buffer= stringWriter.getBuffer();
return buffer.toString();
}
@SuppressLint("SetJavaScriptEnabled")
public void form_load() {
try {
String simple = PinyinX.getSimple( "Android 提示");
new AlertDialog.Builder(this).setTitle(simple)
.setMessage("这是一个提示,请确定").show();
webView = (WebView) findViewById(R.id.webView1);
// 设置WebView属性,能够执行Javascript脚本
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://139.196.164.150:8080/lime/cmsWechat/list.html");
} catch (Throwable e) {
Log.i("exp", getTrace(e));
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// //加载需要显示的网页
// webview.loadUrl("http://www.51cto.com/");
// //设置Web视图
//
setContentView(R.layout.activity_main);
form_load();
// setContentView(webView);
}
Atitit.android webview h5运行环境总结的更多相关文章
- Atitit linux获取项目运行环境版本
Atitit linux获取项目运行环境版本 1.1. Nginx版本1 1.2. Php版本1 1.3. Mysql版本2 1.4. Redis版本2 1.1. Nginx版本 [root@iZ25 ...
- Android Webview H5资源本地化
Android Webview H5资源本地化 一. 创建读取资源项目独立模块 1. 项目依赖的好处 符合模块化的思想,他们相互独立.一个项目持有另一个项目的引用,修改更加方便. (注:compile ...
- Android WebView H5开发拾遗
上篇介绍了一些WebView的设置,本篇为一些补充项. 首先加载HTML5的页面时,会出现页面空白的现象,原因是需要开启 DOM storage API 功能: webSettings.setDomS ...
- Android WebView与H5联调技巧
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/78 背景: 突然想写一篇关于Android WebView ...
- Android(java)学习笔记161:Framework运行环境之启动SystemServer进程
SystemServer进程是zygote孵化出的第一个进程,该进程是从ZygoteInit.java的main函数中调用startSystemServer()开始的.与启动普通进程的差别 ...
- Android WebView 不支持 H5 input type="file" 解决方法
最近因为赶项目进度,因此将本来要用原生控件实现的界面,自己做了H5并嵌入webview中.发现点击H5中 标签 不能打开android资源管理器. 通过网络搜索发现是因为 android webvie ...
- Android原生和H5交互;Android和H5混合开发;WebView点击H5界面跳转到Android原生界面。
当时业务的需求是这样的,H5有一个活动商品列表的界面,IOS和Android共用这一个界面,点击商品可以跳转到Android原生的商品详情界面并传递商品ID: 大概就是点击H5界面跳转到Androi ...
- 原生+H5开发之:Android webview配置
在上一篇文章Android 原生开发.H5.React-Native开发特点,我们可以了解到三种Android开发方式的区别和优缺点.[Android开发:原生+H5]系列的文章,将主要讲解Andro ...
- Android(java)学习笔记104:Framework运行环境之启动SystemServer进程
1. SystemServer进程 SystemServer进程是zygote孵化出的第一个进程,该进程是从ZygoteInit.java的main函数中调用startSystemServe ...
随机推荐
- 前端设计师必须知道的10个重要的CSS技巧
对于一个初入门的前端设计师,在设计修改网站前端的时候,我们需要编写一些CSS.JS的内容达到界面效果.今天分享10个对于前端设计师来说重要的CSS技巧,这也是我在给许多客户做网站的过程当中总结出来的. ...
- [Contest20180323]King
跳蚤国王要召开第二届内阁会议,所以把所有跳蚤都召集到了会议室.所有跳蚤在会议室的圆桌前坐成了一个圈,从$1$到$n$标号,每人的面前都有一盏明灯. 就在会议就要开始的时候,国王突然发现,并不是所有的灯 ...
- 【指数型母函数】hdu1521 排列组合
#include<cstdio> #include<cstring> using namespace std; int n,m,jiecheng[11]; double a[1 ...
- 【分块】bzoj1593 [Usaco2008 Feb]Hotel 旅馆
分块,记录每个块内包括左端点的最大连续白段的长度, 整个块内的最大连续白段的长度, 和包括右端点的最大连续白段的长度. Because 是区间染色,所以要打标记. 至于怎样在O(sqrt(n))的时间 ...
- 1.6(Spring MVC学习笔记)文件上传与下载
一.文件上传 实现文件上传多数是采用表单提交数据, 但对于进行文件上传的表单需要满足一下几个条件 1.表单的method设置为post 2.表单的enctype设置为multipart/form-da ...
- IO 流(File)
1.创建文件 package com.ic.demo01; import java.io.File; import java.io.IOException; public class FileDemo ...
- cocoapods更新
使用sudo gem install cocoapods更新提示: ERROR: While executing gem ... (Errno::EPERM) Operation not permit ...
- Xcode8 不能显示blame,show blame for line 灰色不可点解决办法
1.原因 创建工程时没勾选create git repository 2.解决办法 ➜ ~ cd /Users/zhanglinfeng/Documents/EastMoney/EMLive / ...
- 配置.net程序集搜索路径
默认情况下,.net程序对外部程序集dll的搜索路径是exe文件所在的目录,虽然这种方式没有什么太多不好的地方,但是当我们引用外部程序集较多的时候显得非常杂乱.一种比较常用的解决方式是通过配置在app ...
- [ubuntu Setup] ubuntu 14.10 安装 JDK
from : http://www.cnblogs.com/plinx/archive/2013/06/01/3113106.html 1.到 Sun 的官网下载 http://www.oracle ...