CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

WKJSHandler 2.0.1

WKJSHandler 2.0.1

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Dec 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by KK.



  • By
  • wangtieshan

WKJSHandler

oc <-> js handler, deal for js call app

<!-- 下面是H5 中的代码例子 --!>

window.webkit.messageHandlers.alterInfo.postMessage()

window.webkit.messageHandlers.startApply.postMessage()

如下为一个完整示例

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html>
	<head>
		<meta charset="UTF-8">
		<title>wkWebView</title>
        
	</head>
	<body>

	<div>
		<button onclick="alertSheet()">弹框 -> alertSheet</button>
        <span id="sheet"></span>
	</div>

	<div>
		<button onclick="showAlert()">弹框 -> alert</button>
        <span id="alert"></span>
	</div>

	<div>
		<button onclick="jumpToBaidu()">新增界面 -> 跳转到百度</button>
	</div>

	<div>
		<button onclick="pageSecond()">新增界面 -> 跳转到第二界面</button>
	</div>

	<div>
		<button onclick="pageSecondInside()">内部跳转 -> 跳转到第二界面</button>
	</div>

	<div>
		<button onclick="Native.enablePullDownRefresh({enable: true})">打开下拉刷新功能</button>
		<button onclick="Native.enablePullDownRefresh({enable: false})">关闭下拉刷新功能</button>
		<button onclick="Native.startPullDownRefresh()">开始下拉刷新</button>
		<button onclick="Native.stopPullDownRefresh()">结束下拉刷新</button>
	</div>

	<div>
		<button onclick="showToast()">show toast</button>
	</div>

	<div>
		<button onclick="Native.showLoading({title: '点完你就后悔了,你会发现啥都做不了了,你要不要重启手机试试'})">show loading</button>
	</div>

	<div>
		<button onclick="Native.hiddenLoading()">hidden loading</button>
	</div>

	<div>
		<button onclick="Native.makePhoneCall({phoneNum: '15003836653'})">打电话</button>
	</div>

	<div>
		<span>当前亮度:</span><span id="getScreenBrightness"></span>
	</div>

	<div>
		<button onclick="Native.setScreenBrightness({value: 1.0})">亮</button>
	</div>

	<div>
		<button onclick="Native.setScreenBrightness({value: 0.2})">暗</button>
	</div>

	<div>
		<button onclick="Native.vibrateShort()">震动</button>
	</div>

	<div>
		<button onclick="Native.setNavigationBarTitle({title: '修改标题'})">更改导航标题</button>
		<button onclick="Native.setNavigationBarTitle({title: '测试'})">还原</button>
	</div>

	<div>
		<button onclick="Native.setNavigationBarColor({frontColor: '#FFFFFF',backgroundColor: '#647cff' })">更改导航颜色</button>
		<button onclick="Native.setNavigationBarColor({frontColor: '#000000',backgroundColor: '#FFFFFF' })">还原</button>
	</div>

	<div>
		<button onclick="weatherTest()">网络测试,检测手机号 15003836653 是否已经注册</button>
		<p id="weather"></p>
	</div>

	<div>
		<button onclick="Native.scrollTo({position: 200})">滚动到200px处</button>
	</div>

	<script type="text/javascript">

		Native.onPullDownRefresh = function(){
		    Native.showAlert({
				title: '已经下拉刷新',
				itemList: ['知道了,别比比']
			})
		};

		function weatherTest() {
			Native.request({
                url: "http://dealer-server.shenmajr.com/dealer-server/dealer/checkPhone",
				data: {
                    loginName: '15003836653',
				},
                complete: function ({error, data}) {
					document.getElementById('weather').innerHTML = JSON.stringify(data)
                }
			})
        }

        function jumpToBaidu() {

            Native.navigateTo({url: 'https://www.baidu.com', success: function () {

            }, fail: function () {

            }})
        }

        function alertSheet() {
            var list = ['第一个', '第二个', '第三个'];
            Native.showActionSheet({
                title: 'hello world',
                message: '不好好学习',
                itemList: list,
                success: function (index) {
                    document.getElementById('sheet').innerHTML = '选择了' + list[parseInt(index)];
                }
            })
        }

        function showAlert() {
            var list = ['第一个', '第二个', '第三个'];
            Native.showAlert({
                title: 'hello world',
                message: '不好好学习',
                itemList: list,
                success: function (index) {
                    document.getElementById('alert').innerHTML = '选择了' + list[parseInt(index)];
                }
            })
        }

        function showToast() {
            Native.showToast({
                title: 'hello title',
                message: '点击下面的按钮试试',
            })
        }

        Native.getScreenBrightness({success: function (light) {
            document.getElementById('getScreenBrightness').innerHTML = light;
        }});

        function pageSecond() {
            var url = window.location.href;
            url = url.replace('wkWebView', 'newWebView');
            Native.navigateTo({
                url: url,
            })
        }

        function pageSecondInside() {
            var url = window.location.href;
            url = url.replace('wkWebView', 'insideNewWebView');
            window.location.href = url;
        }

	</script>
	</body>
</html>