Android 与web的相互调用

这篇文章简单讲解 Android与web的简单交互。
1:Android显示web网页:利用Android的WebView控件展示网页
2:web网页调用Android方法:利用注解的方式将Android的方法公开,在javascript中调用公开的方法。

接下来,展示具体的小例子:

1:WebView显示web网页:

布局:

<WebView
        android:id="@+id/loadWeb"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/web"
</WebView>

代码:

        webView = (WebView)findViewById(R.id.loadWeb);
        //获得对webview的设置
        WebSettings settings = webView.getSettings();
        //设置允许缩放
        settings.setSupportZoom(true);
        //设置允许脚本
        settings.setJavaScriptEnabled(true);
        //设置客户端
        webView.setWebChromeClient(new WebChromeClient());
        webView.setWebViewClient(new WebViewClient());
        //加载网址
        webView.loadUrl("http://www.baidu.com");

最后注意配置权限:

<uses-permission android:name="android.permission.INTERNET" />

运行就可以看到百度首页。

2:web调用Android方法:

1:布局:

<WebView
        android:id="@+id/loadWeb"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/web"
</WebView>

2 : android公开方法:

public class LoadJS {
    private Context context;
    public LoadJS(Context context){
        this.context = context;
    }

    //以注解的方式公开该方法(webkit是浏览器内核),以供网页调用
    @android.webkit.JavascriptInterface
    public void MyToast(String cc){
        Toast.makeText(context, "我来自网页调用"+cc, Toast.LENGTH_SHORT).show();
    }
}

3 : 网页调用公开方法:
在Android项目文件夹src–>main下新建assets文件夹,在assets文件夹中新建html页。
html代码,其中的js部分代码可在Android完成注解公开方法后再完成:

<html>
<head>
    <title>网页标题</title>
    <script>
    function clickq(){
    <!--获取输入框的值-->
        var cc = document.getElementById("content").value;
            <!--调用公开的方法-->
            android.MyToast(cc);
    }
</script>
</head>
<body>
<input value="点击输入" id="content"/>
<input type="button" value="按钮" onclick="clickq()" id="button"/>
</body>
</html>

运行即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值