首頁 > web前端 > html教學 > UIWebView与javascript交互三通过OC页面来改变html页面上的值_html/css_WEB-ITnose

UIWebView与javascript交互三通过OC页面来改变html页面上的值_html/css_WEB-ITnose

WBOY
發布: 2016-06-24 11:45:46
原創
1010 人瀏覽過

有一件事要说一下哦, 《UIWebView与javascript交互一》这篇博客被几个网站给转载了,很开心,但是开心之余有一点觉得要说一下,大家转载别人的文章的时候记得说明一下转载的出处,有两方面的原因,第一就是尊重作者的劳动成果,另一方面,由于博客里有的时候有一些demo,但是转载的人并没有把demo的下载地址给贴出来,给看到博客的同学带来了很大的不便。
接上篇,我们已经实现了通过html按钮来传数据到oc页面,但是没有实现通过oc页面传数据到js页面,并修改html的页面,谈不上真正完全的交互,这里将和大家分享一下。
开始先把test.html的代码给大家分享一下:

<html>    <head>        <title>test</title>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>        <script type ="text/javascript" src ="test.js"></script>    </head>    <body>        <form name="myform" onsubmit ="return false;">            <table>                <tr>                    <td height ="30" width ="320" align="center" bgcolor="#DC143C">I'm Jack,I'm an IOS coder</td>                </tr>                <tr>                    <td height ="30" width ="320" align="center">                        <input name ="input1" id ="input1" type="text" size="25" maxlength="100" >                            </td>                </tr>                <tr>                    <td height="30" width="60" align="center">                        <input name ="submit" type="submit" value="submit" onClick ="check()">                            </td>                </tr>                <tr>                    <td height="30" width="60" align="center">                        <input name ="changevalue" type="submit" value="changevalue" onClick ="change_value()" >                            </td>                </tr>                <tr>                    <td height ="30" width ="320" align="center">                        <input name ="input2" id ="input2" type="text" size="25" maxlength="100" >                            </td>                </tr>            </table>        </form>    </body></html>
登入後複製

其中有两个地方需要提醒大家一下,以免犯和我同样的错误哦

红线部分的onsubmit =”return false;”主要因为我用了button触发事件,submit默认刷新页面,所以要returnfalse来禁止触发事件后刷新页面。

红线部分,input的value和Onclick()函数的函数名字不能相同,要不然函数不能够被调用。
这两个地方都是自己不注意犯下的错误花了好长的时间又问了好几个人,最后才找到问题的所在。学的教训,大家一定要记得哦!!!
下面大家看下test.js文件的代码:

window.onerror = function(err) {    log('window.onerror: ' + err);};function connectWebViewJavascriptBridge(callback) {    if (window.WebViewJavascriptBridge) {        callback(WebViewJavascriptBridge);    } else {        document.addEventListener('WebViewJavascriptBridgeReady', function() {                                  callback(WebViewJavascriptBridge);                                  }, false);    }}function check(){    connectWebViewJavascriptBridge(function(bridge) {                                   var str = document.getElementById('input1').value;//将第一个输入框的值传递到OC页面中去                                   bridge.callHandler('submit', str, function(response) {                                                      log('JS got response', response);                                                      });                                   });}function change_value(){    connectWebViewJavascriptBridge(function(bridge) {                                   bridge.init(function(message, responseCallback) {                                               log('JS got a message', message);                                               var data = { 'Javascript Responds':'Wee!' };                                               log('JS responding with', data);                                               responseCallback(data);                                               });                                   bridge.registerHandler('changeValueHandler', function(data, responseCallback) {                                                          document.getElementById('input2').value ='3';//改变html页面上第二个输入框的值                                                          var responseData = { 'Javascript Says':'Right back atcha!' }                                                          responseCallback(responseData)                                                          });                                   });}
登入後複製

不多说了demo下载地址

另外今天看到了一片博客对我的思路的启发很大也和大家分享下:
http://honglu.me/2014/09/27/WebViewJavascriptBridge使用/

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板