Android 与H5之间互相调用

一、安卓与H5互调

(1)Java调用js 主要代码

Java代码:

WebSettings webSettings = webView.getSettings();
//设置支持javaScript脚步语言
webSettings.setJavaScriptEnabled(true);

调用js

webView.loadUrl("javascript:javaCallJs(" + "'" + numebr + "'" + ")");//调用js有参方法

webView.loadUrl("javascript:javaCallJsTest()");//调用js无参方法

js代码:

//有参
function javaCallJs(arg){
    document.getElementById("content").innerHTML =
         ("欢迎:"+arg );
}

  //无参
function javaCallJsTest(){
       document.getElementById("text1").innerHTML = ("javaCallJsTest被调用了");
}

 

2、js调用Java代码

java主要代码:

//设置支持js调用java
webView.addJavascriptInterface(new AndroidAndJSInterface(),"Android");
/** * js可以调用该类的方法 */ 

class AndroidAndJSInterface{ 

@JavascriptInterface 

public void showToast(){ 

  Toast.makeText(JavaAndJSActivity.this, "我被js调用了", Toast.LENGTH_SHORT).show(); } 

}

js代码:

<input type="button" value="点击调用Android的showToast方法" onclick="window.Android.showToast()" />

二、js调用Android播放器

Java主要代码:

webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
//设置支持javaScript脚步语言
webSettings.setJavaScriptEnabled(true);

//支持双击-前提是页面要支持才显示
//webSettings.setUseWideViewPort(true);

//支持缩放按钮-前提是页面要支持才显示
 webSettings.setBuiltInZoomControls(true);

//设置客户端-不跳转到默认浏览器中
webView.setWebViewClient(new WebViewClient());

WebSettings webSettings = webView.getSettings();
//设置支持javaScript脚步语言
webSettings.setJavaScriptEnabled(true);
//设置支持js调用java

webView.addJavascriptInterface(new AndroidAndJSInterface(),"android");



这个是进入进入Android视频播放器的

  class AndroidAndJSInterface {
        /**
         * 该方法将被js调用
         * @param id
         * @param videoUrl
         * @param tile
         */
        @JavascriptInterface
        public void playVideo(int id,String videoUrl,String tile){
            //调起系统所有播放器
            Intent intent = new Intent();
            intent.setDataAndType(Uri.parse(videoUrl),"video/*");
            startActivity(intent);
        }
    }

 

js主要代码:

if(obj_play != null) {
    obj_play.ontouchstart = function() {
        this.className = 'inter_click';
        javascript:android.playVideo(itemid, videourl, itemtitle);
        ajaxrequest('/stat/item', "POST", true, {type:'play', id:itemid});
    }
    obj_play.ontouchend = function() {
        this.className = 'inter';
    }
}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值