国康在线问诊H5对接文档.md 4.1 KB

在线问诊H5对接文档

通信方式

使用JsBridge的方式进行通信

H5大致实现逻辑 1.window监听flutterInAppWebViewPlatformReady事件 2.使用window.flutter_inappwebview.callHandler方法调用app端方法,callHandler会返回一个Promise 3.app直接调用js方法(暂无)

具体实现方式参考文档JavaScript Handlers部分中js相关部分:https://inappwebview.dev/docs/webview/javascript/communication#javascript-handlers

接口

H5调用app端

关闭当前页面

方法名 参数 返回值
closePage

打开URL

方法名 参数1 参数2 返回值
openUrl 类型字符串,url地址 类型整数,是否在新页面打开,0否,1是

选择照片

方法名 参数1 返回值
selectPhoto 类型整数,最多选择数量,0单选,其他多选 base64字符串数组,长度0表示用户没有选择照片,其中base64字符串不包含"data:image/jpeg;base64,"头

查看图片

方法名 参数1 返回值
viewPhoto 类型字符串,图片url

测试代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script>
        //环境是否准备好
        var isFlutterInAppWebViewReady = false;
        //监听环境准备完毕事件
        window.addEventListener("flutterInAppWebViewPlatformReady", function(event) {
            isFlutterInAppWebViewReady = true;
        });
        window.onload = function() {
            //打开URL
            var button = document.getElementById('openUrl');
            button.addEventListener('click', function() {
                if(isFlutterInAppWebViewReady)
                {
                    window.flutter_inappwebview.callHandler('openUrl', "http://www.baidu.com");
                }
            });

            //关闭页面
            button = document.getElementById('closePage');
            button.addEventListener('click', function() {
                if(isFlutterInAppWebViewReady)
                {
                    window.flutter_inappwebview.callHandler('closePage');
                }
            });

            //选择照片
            button = document.getElementById('selectPhoto');
            button.addEventListener('click', function() {
                if(isFlutterInAppWebViewReady)
                {
                    window.flutter_inappwebview.callHandler('selectPhoto',3)
                    .then(function(args){
                        for(var i=0;i<args.length;i++)
                        {
                            var img = document.createElement('img');
                            img.src = "data:image/jpeg;base64,"+args[i];
                            img.width = 200;
                            img.height = 150;

                            var body = document.body;
                            body.appendChild(img);
                        }

                    });
                }
            });

            //查看图片
            button = document.getElementById('viewPhoto');
            button.addEventListener('click', function() {
                if(isFlutterInAppWebViewReady)
                {
                    window.flutter_inappwebview.callHandler('viewPhoto', "https://inews.gtimg.com/om_bt/O0e2a37GGF5CDfNgK8GU29rF_2eJlHLDsa17LABXns7V4AA/641");
                }
            });
        };
    </script>
</head>
<body>
<button id="openUrl">打开Url</button>
<button id="closePage">关闭页面</button>
<button id="selectPhoto">选择照片</button>
<button id="viewPhoto">查看图片</button>
</body>
</html>