Js与WebView交互需注意的

一、Java代码

1、webView的设置

webView.getSettings().setDefaultTextEncodingName("utf-8");

webView.getSettings().setJavaScriptEnabled(true);

webView.loadUrl("http://shaoml.oicp.net/mt_app_int/weixin/around.jsp?mobile=" + phone + "&token=" + token);

// WebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等

// webChromeClient = new WebChromeClient() {

// @Override

// public void onReceivedTitle(WebView view, String title) {

// super.onReceivedTitle(view, title);

// // tv_title_content.setText(title);

// SunriseUIHelper.showTip(Around_Activity.this, "当前页面Title:" + title);

// wv_list.getSettings().setJavaScriptEnabled(true);

// }

// };

// wv_list.setWebChromeClient(webChromeClient);

webView_list.addJavascriptInterface(this, "todetail");

/**

*

*按返回的html地址跳转页面

*html路径要是绝对路径

* @param year

*/

@JavascriptInterface

public void refresh(String html, String name) {// 跳转到商家详情页面

Intent adetailIntent = new Intent(Around_Activity.this, Around_Detail_Activity.class);

adetailIntent.putExtra("html", "http://shaoml.oicp.net/mt_app_int/weixin/" + html);

adetailIntent.putExtra("name", name);

startActivity(adetailIntent);

}

二、Js代码

(1)直接传

window.todetail.refresh(‘http://mob.com‘,"全家");

(2)当变量传

getShopUrl = function(obj){

var sellerid = $(obj).parent().attr("sellerid");

var url = "\aroundInfo.jsp?sellerid="+sellerid;

var sellerTitle = $(obj).children(".aroundLi").children(".aroundLiTit").html();

if(window.todetail != undefined){

//要记得加上“”,这样java那边才知道是字符串类型,才能做对应的操作。

window.todetail.refresh(url+"",sellerTitle+"");

}else{

location.href=url;

}

};

时间: 2024-10-12 19:56:00

Js与WebView交互需注意的的相关文章

Js与OC交互

Js与OC交互 源码请点击github地址下载. 下面讲述实现OC和JS的交互,它们相互调用,其中需要写一个静态的HTML文件用于提供JS方法. 效果图如下: screen.png 一.OC调用JS: 不说闲话,看代码如下 需要先在js文件定义方法postStr供oc调用 function postStr(string) { return 'I am the return parameter JS, and param ' + string; } oc代码只需一句即可调用 NSString *s

UIWebView与JS的深度交互

事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的HTML.除此之外,还需要禁用获取的HTML文本中自带的 < img > 标签自动加载,并把下载图片的操作放在native端来处理,并通过JS将图片在Cache中的地址返回给UIWebview. 之所以要把图片操作放在

转载 【iOS开发】网页JS与OC交互(JavaScriptCore) OC -----&gt;JS

目标 本文介绍利用苹果在iOS7时发布的JavaScriptCore.framework框架进行js与OC的交互.我们想要达到的目标是: OC调用网页上的js方法 网页js调用APP中的OC方法 JavaSciptCore.framework框架介绍 JavaScriptCore是webkit的一个重要组成部分,主要是对js进行解析和提供执行环境.具体介绍请看这篇简书的文章:JavaScriptCore 使用 准备环境 创建一个名为JS与OC交互Demo的iOS工程.然后在storyboard添

UIWebView与JS的深度交互-b

要实现这样一个需求:按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的 HTML.除此之外,还需要禁用获取的HTML文本中自带的 < img >  标签自动加载,并把下载图片的操作放在native端来处理,并通过JS将图片在Cache中的地址返回给UIWebview.之所以要把图片操作放在native端做的好处在于:1.可以进行本地缓存,下次进入这篇文章可以直接从缓存读取,提高响应速度并且节省用户流量.2.可以实现点击图片放大.保存图片到相册等操作

ASP.net与SQLite数据库通过js和ashx交互(连接和操作)

ASP.net与SQLite数据库通过js和ashx交互(连接和操作): 废话(也是思路):用的是VS2010,打算做网站前后台.由于不喜欢前台语言里加些与html和css和js的其他内容,想实现前后台语言的分离,与前后台通过js的ajax实现交互,故很多百度出来的方法不成立,虽听说ashx过时,但是他实现了我要的效果:即前后台语言不是相互嵌入实现交互,而是通过js实现(有接口就可以).由于领导指定用SQLite,故这两天还折腾了SQLite,不过对于这种小型的网站,它是个很好的选择(不需要部署

史上最全的 UIWebview 的 JS 与 OC 交互

来源:伯乐在线 - 键盘风筝 链接:http://ios.jobbole.com/89330/ 点击 → 申请加入伯乐在线专栏作者 其实一直想给大家整理一下JS与OC的交互,但是没有合适的机会,今天借着微信小应用的发布,以及以后H5必定越来越流行,所以给大家整理一下. 交互方式有三种: 1.UIWebviewDelegate 2.JavaScriptCore 3.WebViewJavascriptBridge按照排序给大家介绍一下,我推荐前两种方法,第三种需要依赖第三方框架,并且不一定能拦截成功

JS&amp;iOS原生交互

关于原生和hybid之争,这里不做探讨.主要讲讲JS和OC交互 开讲前附上一个牛逼的第三方 JavascriptBridge OC执行JS代码 1.stringByEvaluatingJavaScriptFromString 这个方法是UIWebView里面的方法,也是最为简单的和JS交互的方式 - (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script; 用法比较简单,一般在代理方法- (vo

iOS 开发之JS与Native交互

最近项目中用到了JS与OC交互的,所以我就来讲一下JS与OC交互的详细过程,以及在做项目的时候遇到的问题,跟大家分享一下. 1:关于交互实现方式的选择. 网上讨论比较多的有一个第三方库WebViewJavascriptBridge,个人不建议用,因为本身我们在做H5交互的时候就是给前端增加了工作量,而这种处理方式就需要前端要配置两套代码,一套给安卓,一套给iOS,而且不利于调试.所以我最后选择用系统的JavaScriptCore框架,JavaScriptzCore内部有五个框架,分别是: #im

js与as3交互的问题

我想,是时候纠正一定以来的误区了,那就是html中的js如何获取flash的swf对象,并与as3交互. 按照官方的写法应该是在 Internet Explorer 中返回 object 标签的 id 属性,或者在 Netscape 中返回 embed 标签的 name 属性(AS3 API手册). function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return win