在android中实现webview与javascript之间的交互

在android开发项目中,采用了webview控件和微网站。该项目中需要实现一个分享功能,而且是需要用javascript来调用android中定义好的分享功能,所以需要实现webview与javascript之间的交互。 一. 先说说android中webview控件如何调用javascript代码? 其实android中webview控件调用javascript方法还是比较简单,只需要设置webview支持javascript,然后用loadUrl调用javascript方法即可。实现代码如下: this.appView.getSettings().setJavaScriptEnabled(true);  javascript方法: function showDialog(info){ alert(info); }  android代码 this.appView.loadUrl(“javascript:showDialog(‘jhonse’)”);  二.  javascript调用android中自定义好的方法(例如: 分享) 需要给webview控件添加addJavascriptInterface方法,而这个就类似于初始化一个类对象,以及类对象里的方法。这个类对象就提供给javascript来调用。请看实现代码: this.appView.addJavascriptInterface(new Object() { @JavascriptInterface public void OnClick(String Subject, String Text) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType(“text/plain”); intent.putExtra(Intent.EXTRA_SUBJECT, Subject); intent.putExtra(Intent.EXTRA_TEXT, Text); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(Intent.createChooser(intent, “分享”)); } }, “JShare”); javascript调用自定义好的JShare对象。 if(window.JShare){ $(“#icon-share”).click(function(){ window.JShare.OnClick(“分享”,document.title+” “+document.URL); }); }  效果图:

【JavaScript】获取offsetTop和offsetLeft值(兼容性)

最近用js获取offsetTop和offsetLeft的值,来实现图片放大镜的功能。遇到一个很纠结的问题,谷歌、火狐浏览器都可以通过获取元素对象,然后再获取offsetTop、offsetLeft的值,代码如下: var div = document.getElementById(“div”); var value = div.offsetTop; 就可以获到该div的offsetTop和offsetLeft值,但是IE、360浏览器就是获取不到该值,总是显示其值为0。 解决方法如下: function offsetTop( elements ){ var top = elements.offsetTop; var parent = elements.offsetParent; while( parent !== null ){ top += parent.offsetTop; parent = parent.offsetParent; } return top; }; function offsetLeft( elements ){ var left = elements.offsetLeft; var parent = elements.offsetParent; while( parent !== null ){ … Continue reading “【JavaScript】获取offsetTop和offsetLeft值(兼容性)”

【javascript】页面跳转和打开新窗口方法

第一种: <script language=“javascript” type=“text/javascript”> window.location.href=“http://blog.jhonse.com/login.php?backurl=”+window.location.href; </script> 第二种: <script language=“javascript”> alert(“返回”); window.history.back(-1); </script> 第三种: <script language=“javascript”> window.navigate(“index.php”); </script> 第四种: <script language=“JavaScript”> self.location=’index.htm’; </script> 第五种: <script language=“javascript”> alert(“非法访问!”); top.location=’index.html; </script> 1.在原来的窗体中直接跳转用 window.location.href=”你所要跳转的页面”; 2、在新窗体中打开页面用: window.open(‘你所要跳转的页面’); window.history.back(-1);返回上一页 3、一些用法 按钮式: <INPUT name=”pclog” type=”button” value=”/GO” onClick=”location.href=’连接地址’”> 链接式:<a href=”javascript:history.go(-1)”>返回上一页</a> <a href=”<%=Request.ServerVariables(“HTTP_REFERER”)%>”>返回上一页</a> 直接跳转式: <script>window.location.href=’连接地址’;</script> 开新窗口: <a href=”/javascript:” onClick=”window.open(‘http://blog.jhonse.com’,”,’height=500,width=611,scrollbars=yes,status =yes’)”>123</a> <SCRIPT> <!– window.open (‘dollare.html’,’newwindow’,’height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no’) … Continue reading “【javascript】页面跳转和打开新窗口方法”

【javascript】字符串函数

JS自带函数 concat 将两个或多个字符的文本组合起来,返回一个新的字符串。 var a = “hello”; var b = “,world”; var c = a.concat(b); alert(c); //c = “hello,world” indexOf 返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。 var index1 = a.indexOf(“l”); //index1 = 2 var index2 = a.indexOf(“l”,3); //index2 = 3 charAt 返回指定位置的字符。 var get_char = a.charAt(0); //get_char = “h” lastIndexOf 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 。 var index1 = lastIndexOf(‘l’); //index1 … Continue reading “【javascript】字符串函数”