首页 > 技术文章 > webview 与JS交互

liuliangliang 2018-02-28 13:49 原文

1.前端调用类

 webview.getSettings().setTextZoom(100);//当前字体百分比
        webview.getSettings().setDefaultTextEncodingName("utf-8");//指定编码方式
        webview.getSettings().setJavaScriptEnabled(true);//支持js
        webview.getSettings().setDomStorageEnabled(true); //设置支持DomStorage
        webview.getSettings().setAllowFileAccess(true);//设置在WebView内部是否允许访问文件
        webview.getSettings().setBlockNetworkLoads(false);//设置WebView是否从网络加载资源,Application需要设置访问网络权限,否则报异常
        webview.getSettings().setBlockNetworkImage(false);//设置WebView是否以http、https方式访问从网络加载图片资源,默认false
        aj = new AndroidToastForJs(WebViewActivity.this, webview);
        webview.addJavascriptInterface(aj, "AppNativeInterface");//JS交互
        webview.loadUrl("http://ldj.oapi.xunmall.com:3038/service/bussiness?uid=1440&f=1&token=3e2f600c5437f083ab93cf19b871dc51&v=58");
public class AndroidToastForJs {
    private Context mContext;
    private com.tencent.smtt.sdk.WebView mWebView;

    // 初始化方法
    public AndroidToastForJs(Context context, WebView myweb) {
        this.mContext = context;
        this.mWebView = myweb;
    }
    /**
     * 用于前端自己跳转h5页面方法
     * url:加载的网址
     * titleText:标题名称
     * titleType:标题栏显示类型
     * */
    @JavascriptInterface
    public void toAppHTML(String strJson) {
        webviewBean webviewbean = FastJsonUtil.toBean(strJson,webviewBean.class);
        Intent intent = new Intent(mContext, WebViewActivity.class);
        intent.putExtra("url",webviewbean.getUrl());
        intent.putExtra("title",webviewbean.getTitle());
        intent.putExtra("titleType",webviewbean.getBankType());
        mContext.startActivity(intent);
    }

    //前端调用方法
    @JavascriptInterface
    public void toApp(int type, String strJson) {
        switch (type) {
            case 0:// 商品列表
                toGoodList(strJson);
                break;
            case 1:// 商品详情页
                toGoodDetails(strJson);
                break;
            case 2:// 店铺详情页
                toShop(strJson);
                break;
            case 3:// 账户余额
                toBalance(strJson);
                break;
            case 4:// 订单列表
                toOrderList(strJson);
                break;
            case 5:// 我的资料
                toUserData(strJson);
                break;
            case 6:// 我的优惠劵
                toRedPage(strJson);
                break;
            case 7:// 充值
                toRecharge(strJson);
                break;
            case 8:// 我的收藏
                toCollection(strJson);
                break;
            case 9:// 主页
                jumpShouye(strJson);
                break;
            case 11:// 分类
                Classify(strJson);
                break;
            case 12:// 购物车
                toShopCar(strJson);
                break;
            case 13:// 个人中心
                Center(strJson);
                break;
            case 14:// 版本更新

                break;
            case 15:// 拨打电话
                cllMoble(strJson);
                break;
            case 16:// 返利列表
                toRebate(strJson);
                break;
            case 17:
                toOrderDetails(strJson);
                break;
            case 18:
                break;
            case 19:
                MaiMaiJin(strJson);
                break;
            case 20:
                toErweima(strJson);
                break;
            case 21:
                Login(strJson);
                break;
            case 22:
                Register(strJson);
                break;
            case 23:
                Lostpassword(strJson);
                break;
            case 24:// 搜索页
                toSearchPage(strJson);
                break;
            case 25:
                toGoodSureOrderActivity(strJson);
                break;
            case 26:
                break;
            case 27:
                break;
            case 28:
                toGoodAllActivity(strJson);
                break;
            case 29:
                break;
            case 30:
                break;
            case 31:
                break;
            case 32:
                toShopSearchActivity(strJson);
                break;
            case 33:
                break;
            case 34:// 活动页面

                break;
            case 35:
                break;
            case 36:
                toFavActivity(strJson);
                break;
            case 37:
                toPingJiaActivity(strJson);
                break;
            case 38:
                toServiceActivity(strJson);
                break;
            default:
                break;
        }
    }
}

2.调用前端

 webview.loadUrl("javascript:openMusic()");//加载结束,加载音乐 

推荐阅读