Home > Web Front-end > HTML Tutorial > UIWebView interacts with javascript three to change the value on the html page through the OC page_html/css_WEB-ITnose

UIWebView interacts with javascript three to change the value on the html page through the OC page_html/css_WEB-ITnose

WBOY
Release: 2016-06-24 11:45:46
Original
1010 people have browsed it

There is one thing I want to say. The blog "UIWebView and JavaScript Interaction 1" has been reprinted by several websites. I am very happy, but besides being happy, I have something to say. Everyone When reprinting other people's articles, remember to indicate the source of the reprint. There are two reasons. The first is to respect the fruits of the author's labor. On the other hand, because sometimes there are some demos in the blog, but the person who reprinted them did not include the demos. The download address was posted, which caused great inconvenience to the students who saw the blog.
Continuing from the previous article, we have implemented the method of transmitting data to the oc page through the html button, but we have not implemented the method of transmitting data to the js page through the oc page and modifying the html page. There is no real and complete interaction. Here we will Share it with everyone.
Let me start by sharing the code of test.html with you:

<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>
Copy after login

There are two places that I need to remind you to avoid making the same mistakes as me

Red line Part of the onsubmit = "return false;" is mainly because I used a button to trigger the event, and submit refreshes the page by default, so returnfalse is required to prevent the page from being refreshed after the event is triggered.

In the red line part, the value of the input and the function name of the Onclick() function cannot be the same, otherwise the function cannot be called.
These two mistakes were made by me accidentally. It took me a long time and asked several people before I finally found the problem. Everyone must remember the lessons learned! ! !
Let’s take a look at the code of the test.js file:

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)                                                          });                                   });}
Copy after login

Not much to say about the demo download address

In addition, I saw a blog today that greatly inspired my ideas. Also share it with everyone:
http://honglu.me/2014/09/27/WebViewJavascriptBridge usage/

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template