webView和js相互调用简单版

public class WebActivityextends AppCompatActivity {

private WebViewwb1;

    private ButtonwbBtn1;

    private ButtonwbBtn2;

    @SuppressLint({"SetJavaScriptEnabled", "JavascriptInterface"})

@Override

    protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_web);

        initView();

        //开启JavaScript

        wb1.getSettings().setJavaScriptEnabled(true);

        //加载地址

        wb1.loadUrl("file:///android_asset/h5.html");

        //加载客户端

        wb1.setWebViewClient(new WebViewClient() {

@Override

            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {

//在本客户端登录页码

                view.loadUrl(String.valueOf(request.getUrl()));

return true;

            }

});

        wb1.setWebChromeClient(new WebChromeClient() {

@Override

            public void onProgressChanged(WebView view, int newProgress) {

//进度关联进度条

                super.onProgressChanged(view, newProgress);

            }

});

        //和Android交互

        wb1.addJavascriptInterface(this, "Android");

        //允许文件访问

        wb1.getSettings().setAllowFileAccess(true);

        wbBtn1.setOnClickListener(new View.OnClickListener() {

@Override

            public void onClick(View v) {

wb1.loadUrl("javascript:text_arg('客户端修改文字')");

            }

});

        wbBtn2.setOnClickListener(new View.OnClickListener() {

@Override

            public void onClick(View v) {

wb1.loadUrl("javascript:image_arg('/sdcard/Download/1627283398571.jpg')");

            }

});

    }

@JavascriptInterface

    public void showToast(String msg) {

Toast.makeText(this, ""+msg, Toast.LENGTH_SHORT).show();

    }

@JavascriptInterface

    public void fenxiang(String msg) {

Toast.makeText(this, ""+msg, Toast.LENGTH_SHORT).show();

    }

private void initView() {

wb1 = findViewById(R.id.wb1);

        wbBtn1 = findViewById(R.id.wb_btn1);

        wbBtn2 = findViewById(R.id.wb_btn2);

    }

}



下边是Js代码放到android——main下边的assets

<!DOCTYPE html>

    <!--头-->


        <script type="text/javascript">

            //定义方法:修改文字

            function text(){

//找到text_id控件修改

                document.getElementById("text_id").innerText="哈哈哈哈";

}

function text_arg(str){

//找到text_id控件修改

                document.getElementById("text_id").innerText=str;

}

//定义方法:修改图片

            function image(){

//找到img_id控件修改

                document.getElementById("img_id").src="img/HBuilder.png";

}

function image_arg(img_src){

//找到img_id控件修改

                document.getElementById("img_id").src=img_src;

}

//js调用安卓代码

            function tusi(){

Android.showToast("我是H5")

}

//js调用安卓代码

            function textfx(){

Android.fenxiang("我是分享啊")

}

    <!--身体-->


        <p id="text_id">我是文字

        <img id="img_id" width="200" height="200"

            src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcdn.duitang.com%2Fuploads%2Fitem%2F201410%2F20%2F20141020162058_UrMNe.jpeg&refer=http%3A%2F%2Fcdn.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1622776682&t=2fb93f6b818442cb65f5e5a51e69d8b1"/>

        <button id="bt1_id" onclick="tusi()">调用安卓代码弹出对话框

        <button id="bt3_id" onclick="image_arg('img/HBuilder.png')">修改图片</button>        <button id="bt2_id" onclick="text('湖的样真帅')">修改文字

        <button id="bt4_id" onclick="textfx()">分享

</html>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容