AndroidWebView的Js对象注入,使用场景是怎样的?

2025-02-26 01:09:56
推荐回答(3个)
回答1:

很多时候要使用WebView来展示一个网页,现在很多应用为了做到服务端可控,很多结果页都是网页的,而不是本地实现,这样做有很多好处,比如界面的改变不需要重新发布新版本,直接在Server端修改就行了。用网页来展示界面,通常情况下都或多或少都与Java代码有交互,比如点击网页上面的一个按钮,需要知道这个按钮点击事件,或者要调用某个方法,让页面执行某种动作,为了实现这些交互,通常都是使用JS来实现,而WebView已经提供了这样的方法。

回答2:

第一步:
mainfest.xml中加入网络权限

第二步:
加载本地写好的html文件(定义好js中提供给android调用的方法 funFromjs(),和android提供给js调用的对象接口fun1FromAndroid(String name)),放在 assets目录下。

js中调用本地方法






第三步:

实现android工程与js交互的相关代码
android主题代码:
public class JavaScriptObject {
Context mContxt;
@JavascriptInterface //sdk17版本以上加上注解
public JavaScriptObject(Context mContxt) {
this.mContxt = mContxt;
}

public void fun1FromAndroid(String name) {
Toast.makeText(mContxt, name, Toast.LENGTH_LONG).show();
}

public void fun2(String name) {
Toast.makeText(mContxt, "调用fun2:" + name, Toast.LENGTH_SHORT).show();
}
}

回答3:

例如,WebView页面中的一个按钮的点击事件是调用手机摄像头或拨号等手机自带功能实需要使用。
目前出现了很多混合开发,如APPCan、PhoneGap等,他们就是将网页调用猴急自带功能进行了封装,更方便的实现网页调用手机功能。