|
ä¯ÀÀÆ÷H5·½·¨Ð¡½á
- /**
- * °²×¿H5ÓëÔÉú½»»¥ÕûºÏ½Å±¾£¨ES5+Rhino¼æÈÝ£©
- * ÓÃ;£ºH5µ÷ÓÃÔÉúAPI + APPµ÷ÓÃH5Âß¼
- * ʹÓãºÖ±½ÓÔÚRhinoÒýÇæÖ´ÐУ¬»ò²ð·ÖH5/APP´úÂë·Ö±ð²¿Êð
- 🍎½»Á÷QQȺ711841924Ⱥһ£¬Æ»¹ûÄÚ²âȺ£¬528816639
- */
- // ==================================================
- // Ò»¡¢ºËÐÄAPI·½·¨£¨H5µ÷ÓÃÔÉúרÓã©
- // ==================================================
- // 1. H5Ö´ÐÐAPP¶ËJSÎļþ
- function runJsFile(file) {
- window.at.runJsFile(file);
- }
- // 2. H5µ÷ÓÃAPP¶ËÖ¸¶¨·½·¨£¨¶à²ÎÊýÓÃJSON×Ö·û´®£©
- function callAppFunction(funname, arg) {
- window.at.callFunction(funname, arg); // ¼æÈÝwindow.at.callFun
- }
- // 3. »ñÈ¡ÏîÄ¿¸ùĿ¼
- function getAppRootPath() {
- var rootPath = window.at.getRootPath();
- printl("ÏîÄ¿¸ùĿ¼£º" + rootPath);
- return rootPath;
- }
- // 4. »ñÈ¡ÏîÄ¿×ÊԴĿ¼
- function getAppResourcesPath() {
- var resPath = window.at.getResourcesPath();
- printl("×ÊԴĿ¼£º" + resPath);
- return resPath;
- }
- // 5. ´æ´¢Êý¾Ýµ½APP±¾µØÎļþ
- function setAppConfig(path, arg, value) {
- window.at.setConfig(path, arg, value);
- printl("Êý¾Ý´æ´¢³É¹¦£º" + path + "|" + arg);
- }
- // 6. ´ÓAPP±¾µØÎļþ¶ÁÈ¡Êý¾Ý
- function getAppConfig(path, arg, defaultValue) {
- var data = window.at.getConfig(path, arg, defaultValue);
- printl("¶ÁÈ¡Êý¾Ý£º" + data);
- return data;
- }
- // 7. H5ÏòAPP´«¹«¹²±äÁ¿
- function setAppPublicData(key, value) {
- window.at.publicSet(key, value);
- printl("¹«¹²±äÁ¿ÉèÖãº" + key + "=" + value);
- }
- // 8. H5´ÓAPP¶Á¹«¹²±äÁ¿
- function getAppPublicData(key) {
- var value = window.at.publicGet(key);
- printl("¹«¹²±äÁ¿¶ÁÈ¡£º" + key + "=" + value);
- return value;
- }
- // ==================================================
- // ¶þ¡¢H5ʾÀý´úÂ루¸´Öƴ˱äÁ¿ÄÚµÄ×Ö·û´®£¬±£´æÎª.htmlÎļþ£©
- // ==================================================
- var H5_DEMO_HTML = `
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>H5-ÔÉú½»»¥ÑÝʾ</title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <style>
- body {background:#222;color:#fff;padding:20px;font-family:Arial;}
- .form-group {margin-bottom:20px;}
- input,select,button {background:#333;color:#fff;border:none;border-radius:5px;padding:10px;margin-right:10px;}
- button {background:#4CAF50;width:60%;font-size:20px;margin-top:20px;cursor:pointer;}
- </style>
- <script language="JavaScript">
- // µ÷ÓÃAPPµÄmain·½·¨
- function callAppMain() {
- var inputVal = document.getElementById("input1").value;
- callAppFunction("main", inputVal);
- }
- // Ö´ÐÐAPP´úÂë¿é
- function runAppJs() {
- window.at.runJs(function() {
- printl("H5´¥·¢APPÖ´ÐÐ");
- auto.home();
- }.toString());
- }
- // Ö´ÐÐAPP JSÎļþ
- function runAppJsFile() {
- runJsFile("Ö÷½Å±¾.js");
- }
- // ²âÊÔÅäÖöÁд
- function testConfig() {
- var resPath = getAppResourcesPath();
- var path = resPath + "test.txt";
- setAppConfig(path, "user", "testUser");
- var user = getAppConfig(path, "user", "default");
- alert("¶ÁÈ¡Óû§Ãû£º" + user);
- }
- // ²âÊÔ¹«¹²±äÁ¿
- function testPublicData() {
- setAppPublicData("h5Val", document.getElementById("input1").value);
- var appVal = getAppPublicData("appInfo");
- alert("APP»Ø´«£º" + appVal);
- }
- </script>
- </head>
- <body>
- <h1>H5-ÔÉú½»»¥ÑÝʾ</h1>
- <div class="form-group">
- <label>ÊäÈë¿ò£º</label>
- <input type="text" id="input1" value="²âÊÔÊý¾Ý">
- </div>
- <button onclick="callAppMain()">µ÷ÓÃAPP main</button>
- <button onclick="runAppJs()">Ö´ÐÐAPP´úÂë</button>
- <button onclick="runAppJsFile()">Ö´ÐÐAPP JSÎļþ</button>
- <button onclick="testConfig()">²âÊÔÅäÖöÁд</button>
- <button onclick="testPublicData()">²âÊÔ¹«¹²±äÁ¿</button>
- </body>
- </html>
- `;
- printl("H5´úÂëÒÑÉú³É£¬ÌáÈ¡H5_DEMO_HTML±äÁ¿ÄÚÈݱ£´æÎª.htmlÎļþ");
- // ==================================================
- // Èý¡¢APP¶Ëµ÷ÓÃH5´úÂ루RhinoÒýÇæÖ±½ÓÖ´ÐУ©
- // ==================================================
- // 1. ³õʼ»¯WebView
- function initWebView() {
- var ac = new activity();
- var layout = [
- '<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"',
- ' android:layout_width="match_parent"',
- ' android:layout_height="match_parent"',
- ' android:orientation="vertical">',
- ' <WebView android:id="@+id/web"',
- ' android:layout_width="match_parent"',
- ' android:layout_height="match_parent" />',
- '</LinearLayout>'
- ].join('\n');
- ac.loadXML(layout);
- sleep.millisecond(400);
- var web = ac.findWebViewById("web");
- printl("WebView³õʼ»¯Íê³É");
- return web;
- }
- // 2. ¼ÓÔØH5Ò³Ãæ
- function loadH5(webView, h5Path) {
- webView.url(h5Path);
- printl("¼ÓÔØH5£º" + h5Path);
- sleep.millisecond(1000); // µÈ´ý¼ÓÔØ
- }
- // 3. ÏòH5×¢ÈëJS
- function runH5Js(webView, jsCode) {
- var result = webView.runWebJs(jsCode);
- printl("H5 JSÖ´Ðнá¹û£º" + result);
- return result;
- }
- // 4. APP¶Ë·½·¨£¨¹©H5µ÷Óã©
- function main(arg) {
- printl("APPÊÕµ½H5²ÎÊý£º" + arg);
- // ½âÎö¶à²ÎÊý£¨ÈôH5´«JSON£©
- if (arg.indexOf("{") !== -1) {
- var obj = JSON.parse(arg);
- printl("½âÎö²ÎÊý£º" + obj.name + "," + obj.age);
- }
- // ÏòH5»Ø´«Êý¾Ý
- publicData.set("appInfo", "ÒÑÊÕµ½£º" + arg);
- }
- // 5. APPµ÷ÓÃH5ÍêÕûÁ÷³Ì
- function appH5Flow() {
- var web = initWebView();
- // ¼ÓÔØH5£¨ÐèÌæ»»ÎªÊµ¼Ê±£´æµÄ.html·¾¶£©
- loadH5(web, "/´úÂë/h5Demo.html");
- // ÏòH5×¢ÈëJSÐÞ¸ÄÊäÈë¿ò
- runH5Js(web, 'document.getElementById("input1").value = "APP×¢ÈëÖµ"');
- // ´¥·¢H5°´Å¥µã»÷
- runH5Js(web, 'document.querySelector("button[onclick=\'callAppMain()\']").click()');
- }
- // Ö´ÐÐAPP-H5½»»¥Á÷³Ì£¨È¡Ïû×¢Êͼ´¿ÉÔËÐУ©
- // appH5Flow();
- // ==================================================
- // ËÄ¡¢Ê¹ÓÃ˵Ã÷
- // ==================================================
- /*
- 1. H5²¿Êð£º
- - ¸´ÖÆH5_DEMO_HTML±äÁ¿ÄÚµÄ×Ö·û´®£¬±£´æÎª"h5Demo.html"
- - ½«Îļþ·ÅÈëAPP¿É·ÃÎÊ·¾¶£¨Èç"/´úÂë/"£©
- 2. APPÖ´ÐУº
- - ÔÚRhinoÒýÇæÖÐÔËÐдËJSÎļþ
- - È¡Ïû"appH5Flow();"×¢ÊÍ£¬Æô¶¯ÍêÕû½»»¥
- 3. ×¢Ò⣺
- - È·±£APPÓÐSD¿¨¶ÁдȨÏÞ£¨ÅäÖöÁдÐ裩
- - "Ö÷½Å±¾.js"Ðè´æÔÚÓÚAPP¸ùĿ¼£¨ÈôÖ´ÐÐrunAppJsFile£©
- - ÈÕ־ͨ¹ýprintlÊä³ö£¬ÔÚRhino¿ØÖÆÌ¨²é¿´
- */
¸´ÖÆ´úÂë
1. ·½·¨£ºrunJsFile£¨H5 ÔËÐÐ APP JS Îļþ£©ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | H5 Ò³Ãæµ÷Óò¢Ö´ÐÐ APP ¶ËÖ¸¶¨µÄ JS ½Å±¾Îļþ | ·½·¨Óï·¨ | window.at.runJsFile(file) | ²ÎÊýÏêÇé | Ãû³Æ£ºfileÀàÐÍ£ºString˵Ã÷£ºÐèÖ´ÐÐµÄ APP ¶Ë JS Îļþ·¾¶»òÎļþÃû£¨Èç ¡°Ö÷½Å±¾.js¡±£© | ·µ»ØÖµ | ÎÞ | ºËÐŦÄÜÃèÊö | ´Ó H5 ¶Ë´¥·¢£¬¼ÓÔØ²¢ÔËÐÐ APP ±¾µØµÄ JS Îļþ£¬ÊµÏÖµ÷Óà APP ¶ËÔ¤Éè½Å±¾µÄÐèÇó | µ÷ÓÃʾÀý´úÂë | // H5Öе÷ÓÃAPP¶ËµÄ¡°Ö÷½Å±¾.js¡± window.at.runJsFile('Ö÷½Å±¾.js'); | 2. ·½·¨£ºcallFunction /callFun£¨H5 Ö´Ðнű¾·½·¨£©ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | H5 Ò³Ãæµ÷Óà APP ÔÉú½Å±¾Öж¨ÒåµÄÖ¸¶¨·½·¨£¬²¢´«µÝ²ÎÊý | ·½·¨Óï·¨ | window.at.callFunction(funname, arg) »ò window.at.callFun(funname, arg) | ²ÎÊýÏêÇé | 1. Ãû³Æ£ºfunnameÀàÐÍ£ºString˵Ã÷£ºAPP ¶ËÐèµ÷Óõķ½·¨Ãû2. Ãû³Æ£ºargÀàÐÍ£ºString˵Ã÷£º´«µÝ¸ø·½·¨µÄ²ÎÊý£¨¶à²ÎÊýÐèÓà JSON ×Ö·û´®·â×°£¬Èç'{"name":"test","value":123}' £© | ·µ»ØÖµ | ÎÞ | ºËÐŦÄÜÃèÊö | ½¨Á¢ H5 Óë APP ÔÉú½Å±¾µÄ·½·¨µ÷ÓÃͨµÀ£¬Ö§³Ö H5 Ïò APP ´«µÝÊý¾Ý²¢´¥·¢Ö¸¶¨Âß¼ | µ÷ÓÃʾÀý´úÂë | // H5µ÷ÓÃAPP¶Ë¡°main¡±·½·¨£¬´«µÝ²ÎÊý¡°hello¡± window.at.callFun('main', 'hello'); // ¶à²ÎÊýʾÀý£¨JSON×Ö·û´®£© window.at.callFun('submitData', '{"username":"user1","age":20}'); | 3. ·½·¨£ºgetRootPath£¨»ñÈ¡ÏîÄ¿¸ùĿ¼£©ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | H5 Ò³Ãæ»ñÈ¡µ±Ç° APP ÏîÄ¿µÄ¸ùĿ¼·¾¶£¬ÓÃÓÚºóÐøÎļþ²Ù×÷£¨Èç¶ÁдÎļþ£© | ·½·¨Óï·¨ | window.at.getRootPath() | ²ÎÊýÏêÇé | ÎÞ | ·µ»ØÖµ | ÀàÐÍ£ºString˵Ã÷£º·µ»ØÏîÄ¿¸ùĿ¼µÄ¾ø¶Ô·¾¶£¨Èç ¡°/storage/emulated/0/APP Ãû³Æ /¡±£© | ºËÐŦÄÜÃèÊö | ÌṩÏîÄ¿¸ù·¾¶»ù×¼£¬·½±ã H5 Æ´½ÓÎļþ·¾¶£¬ÊµÏÖ¶Ô APP ±¾µØÎļþµÄ·ÃÎÊ | µ÷ÓÃʾÀý´úÂë | // H5»ñÈ¡ÏîÄ¿¸ùĿ¼²¢´òÓ¡ var rootPath = window.at.getRootPath();console.log('ÏîÄ¿¸ùĿ¼£º', rootPath); | 4. ·½·¨£ºgetResourcesPath£¨»ñÈ¡ÏîÄ¿×ÊԴĿ¼£©ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | H5 Ò³Ãæ»ñÈ¡µ±Ç° APP ÏîÄ¿µÄ×ÊԴĿ¼·¾¶£¬ÓÃÓÚ·ÃÎÊ APP Ô¤ÉèµÄ×ÊÔ´Îļþ£¨ÈçÅäÖÃÎļþ£© | ·½·¨Óï·¨ | window.at.getResourcesPath() | ²ÎÊýÏêÇé | ÎÞ | ·µ»ØÖµ | ÀàÐÍ£ºString˵Ã÷£º·µ»ØÏîÄ¿×ÊԴĿ¼µÄ¾ø¶Ô·¾¶£¨Èç ¡°/storage/emulated/0/APP Ãû³Æ /resources/¡±£© | ºËÐŦÄÜÃèÊö | ¶¨Î» APP ×ÊÔ´Îļþ´æ·Å·¾¶£¬±ãÓÚ H5 ¶ÁÈ¡»òдÈë×ÊԴĿ¼ÏµÄÎļþ£¨ÈçÅäÖÃÊý¾Ý£© | µ÷ÓÃʾÀý´úÂë | // H5»ñÈ¡×ÊԴĿ¼²¢Æ´½ÓÎļþ·¾¶ var resPath = window.at.getResourcesPath(); var configPath = resPath + 'config.txt'; // ×ÊԴĿ¼ÏµÄconfig.txt console.log('ÅäÖÃÎļþ·¾¶£º', configPath); | 5. ·½·¨£ºsetConfig£¨´æ´¢Êý¾Ýµ½Ö¸¶¨Â·¾¶£©ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | H5 Ò³Ãæ½«Êý¾Ý´æ´¢µ½ APP ±¾µØÖ¸¶¨Â·¾¶µÄÎļþÖУ¬ÊµÏÖÊý¾Ý³Ö¾Ã»¯£¨Èç±£´æÅäÖã© | ·½·¨Óï·¨ | window.at.setConfig(path, arg, value) | ²ÎÊýÏêÇé | 1. Ãû³Æ£ºpathÀàÐÍ£ºString˵Ã÷£ºÊý¾Ý´æ´¢µÄÎļþ·¾¶£¨Èç ¡°/sdcard/1.txt¡± »ò×ÊԴĿ¼·¾¶£©2. Ãû³Æ£ºargÀàÐÍ£ºString˵Ã÷£ºÊý¾Ý´æ´¢µÄ²ÎÊý±êʶ£¨ÓÃÓÚºóÐø¶Áȡʱ¶¨Î»Êý¾Ý£©3. Ãû³Æ£ºvalueÀàÐÍ£ºString˵Ã÷£ºÐè´æ´¢µÄ¾ßÌåÊý¾ÝÄÚÈÝ | ·µ»ØÖµ | ÎÞ | ºËÐŦÄÜÃèÊö | Ö§³Ö H5 Ïò APP ±¾µØÎļþдÈëÊý¾Ý£¬¿ÉÖ¸¶¨´æ´¢Â·¾¶ºÍ²ÎÊý±êʶ£¬±ãÓÚºóÐø¾«×¼¶ÁÈ¡ | µ÷ÓÃʾÀý´úÂë | // 1. ´æ´¢µ½SD¿¨¸ùĿ¼ window.at.setConfig('/sdcard/1.txt', 'a', '1'); // 2. ´æ´¢µ½×ÊԴĿ¼£¨ÏÈ»ñÈ¡×ÊԴ·¾¶£© var resPath = window.at.getResourcesPath(); window.at.setConfig(resPath + '1.txt', 'userInfo', '{"name":"test"}'); | 6. ·½·¨£ºgetConfig£¨´ÓÖ¸¶¨Â·¾¶¶ÁÈ¡Êý¾Ý£©ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | H5 Ò³Ãæ´Ó APP ±¾µØÖ¸¶¨Â·¾¶µÄÎļþÖжÁÈ¡Êý¾Ý£¬»ñȡ֮ǰͨ¹ý setConfig ´æ´¢µÄÄÚÈÝ | ·½·¨Óï·¨ | window.at.getConfig(path, arg, value) | ²ÎÊýÏêÇé | 1. Ãû³Æ£ºpathÀàÐÍ£ºString˵Ã÷£ºÊý¾Ý¶ÁÈ¡µÄÎļþ·¾¶£¨ÐèÓë´æ´¢Ê±Â·¾¶Ò»Ö£©2. Ãû³Æ£ºargÀàÐÍ£ºString˵Ã÷£ºÊý¾Ý¶ÁÈ¡µÄ²ÎÊý±êʶ£¨ÐèÓë´æ´¢Ê± arg Ò»Ö£©3. Ãû³Æ£ºvalueÀàÐÍ£ºString˵Ã÷£ºÄ¬ÈÏÖµ£¬µ±ÎļþÖÐÎÞ¶ÔÓ¦Êý¾Ýʱ·µ»Ø¸ÃÖµ | ·µ»ØÖµ | ÀàÐÍ£ºString˵Ã÷£º·µ»Ø¶ÁÈ¡µ½µÄÊý¾Ý£¨ÓÐÊý¾ÝÔò·µ»ØÊµ¼ÊÖµ£¬ÎÞÊý¾ÝÔò·µ»ØÄ¬ÈÏÖµ£© | ºËÐŦÄÜÃèÊö | ÅäºÏ setConfig ʹÓã¬ÊµÏÖ H5 ¶Ô APP ±¾µØ´æ´¢Êý¾ÝµÄ¶ÁÈ¡£¬Ö§³ÖĬÈÏÖµ¶µµ× | µ÷ÓÃʾÀý´úÂë | // 1. ´ÓSD¿¨¶ÁÈ¡Êý¾Ý£¨Ä¬ÈÏֵΪ¡°0¡±£© var data1 = window.at.getConfig('/sdcard/1.txt', 'a', '0');// 2. ´Ó×ÊԴĿ¼¶ÁÈ¡Êý¾Ý£¨Ä¬ÈÏֵΪ¡°{}¡±£© var resPath = window.at.getResourcesPath(); var userInfo = window.at.getConfig(resPath + '1.txt', 'userInfo', '{}'); console.log('Óû§ÐÅÏ¢£º', userInfo); | 7. ·½·¨£ºpublicSet£¨¹«¹²±äÁ¿´«²Î£©ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | H5 Ò³ÃæÏò APP ÔÉú¶ËµÄ¹«¹²±äÁ¿ÖÐÉèÖüüÖµ¶Ô£¬ÊµÏÖ H5 µ½ APP µÄ¼òµ¥Êý¾Ý´«µÝ | ·½·¨Óï·¨ | window.at.publicSet(key, value) | ²ÎÊýÏêÇé | 1. Ãû³Æ£ºkeyÀàÐÍ£ºString˵Ã÷£º¹«¹²±äÁ¿µÄ¼üÃû£¨ÓÃÓÚ APP ¶Ëʶ±ðÊý¾Ý£©2. Ãû³Æ£ºvalueÀàÐÍ£ºString˵Ã÷£º¹«¹²±äÁ¿µÄ¼üÖµ£¨Ðè´«µÝ¸ø APP µÄÊý¾Ý£© | ·µ»ØÖµ | ÎÞ | ºËÐŦÄÜÃèÊö | ÇáÁ¿¼¶Êý¾Ý´«µÝ·½Ê½£¬ÎÞÐèÎļþ²Ù×÷£¬Ö±½Óͨ¹ý¹«¹²±äÁ¿ÊµÏÖ H5 Óë APP µÄÊý¾Ý½»»¥ | µ÷ÓÃʾÀý´úÂë | // H5ÏòAPP¹«¹²±äÁ¿ÉèÖá°a=1¡± window.at.publicSet('a', '1'); // APP¶Ë¶ÔӦȡֵ·½Ê½£ºpublicData.get('a') | 8. ·½·¨£ºpublicGet£¨¹«¹²±äÁ¿¶Á²Î£©ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | H5 Ò³Ãæ´Ó APP ÔÉú¶ËµÄ¹«¹²±äÁ¿ÖжÁȡָ¶¨¼üÃû¶ÔÓ¦µÄÖµ£¬»ñÈ¡ APP ´«µÝµÄÊý¾Ý | ·½·¨Óï·¨ | window.at.publicGet(key) | ²ÎÊýÏêÇé | Ãû³Æ£ºkeyÀàÐÍ£ºString˵Ã÷£ºÐè¶ÁÈ¡µÄ¹«¹²±äÁ¿¼üÃû£¨ÐèÓë APP ¶ËÉèÖõļüÃûÒ»Ö£© | ·µ»ØÖµ | ÀàÐÍ£ºString˵Ã÷£º·µ»Ø¹«¹²±äÁ¿ÖжÔÓ¦¼üÃûµÄ value Öµ | ºËÐŦÄÜÃèÊö | ÅäºÏ publicSet ʹÓã¬ÊµÏÖ APP µ½ H5 µÄÇáÁ¿¼¶Êý¾Ý´«µÝ£¬ÎÞÐèÎļþ¶Áд²Ù×÷ | µ÷ÓÃʾÀý´úÂë | // H5¶ÁÈ¡APP¹«¹²±äÁ¿ÖС°a¡±µÄÖµ var data = window.at.publicGet('a'); console.log('¹«¹²±äÁ¿aµÄÖµ£º', data); // APP¶Ë¶ÔÓ¦ÉèÖµ·½Ê½£ºpublicData.set('a', '1') | 9. ·½·¨£ºurl /loadUrl£¨APP ¼ÓÔØ H5 Ò³Ãæ£©ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | APP ¶Ëͨ¹ý WebView ¿Ø¼þ¼ÓÔØÖ¸¶¨µÄ H5 Ò³Ãæ£¨Ö§³Ö±¾µØÂ·¾¶»òÍøÂç URL£© | ·½·¨Óï·¨ | web1.url(url) »ò web1.loadUrl(url) £¨web1 Ϊ WebView ¿Ø¼þʵÀý£© | ²ÎÊýÏêÇé | Ãû³Æ£ºurlÀàÐÍ£ºString˵Ã÷£ºH5 Ò³ÃæÂ·¾¶£¬±¾µØÂ·¾¶Èç ¡°/ ´úÂë /h5.html¡±£¬ÍøÂç·¾¶Èç ¡° https://xxx.com/h5¡± | ·µ»ØÖµ | ÎÞ | ºËÐŦÄÜÃèÊö | APP ¶Ë³õʼ»¯ H5 Ò³ÃæµÄºËÐÄ·½·¨£¬½¨Á¢ WebView Óë H5 Ò³ÃæµÄ¹ØÁª | µ÷ÓÃʾÀý´úÂë | // 1. APP³õʼ»¯WebView¿Ø¼þ var ac = new activity(); ac.loadXML('<!-- ²¼¾ÖÖаüº¬WebView£¨idΪweb£© -->'); var web1 = ac.findWebViewById('web'); // 2. ¼ÓÔØ±¾µØH5Ò³Ãæ web1.url('/´úÂë/h5.html'); // 3. ¼ÓÔØÍøÂçH5Ò³Ãæ // web1.url('https://xxx.com/test.html'); | 10. ·½·¨£ºrunWebJs£¨APP Ö´ÐÐ H5 µÄ JS ´úÂ룩ÐÅÏ¢Àà±ð | ÏêÇé˵Ã÷ | ·½·¨×÷Óà | APP ¶ËÏò WebView ÖÐµÄ H5 Ò³Ãæ×¢Èë²¢Ö´ÐÐ JS ´úÂ룬ʵÏÖ APP µ½ H5 µÄÂß¼´¥·¢ | ·½·¨Óï·¨ | web1.runWebJs(jscode) £¨web1 Ϊ WebView ¿Ø¼þʵÀý£© | ²ÎÊýÏêÇé | Ãû³Æ£ºjscodeÀàÐÍ£ºString˵Ã÷£ºÐèÔÚ H5 ÖÐÖ´ÐÐµÄ JS ´úÂë×Ö·û´®£¨Èç ¡°alert ('123')¡±£© | ·µ»ØÖµ | ÀàÐÍ£ºString˵Ã÷£º·µ»Ø JS ´úÂëÖ´ÐкóµÄ½á¹û£¨ÀàËÆ eval Ö´Ðнá¹û£¬¼´×îºóÒ»¸ö±äÁ¿µÄÖµ£© | ºËÐŦÄÜÃèÊö | APP Ö÷¶¯¿ØÖÆ H5 Ò³ÃæÂß¼£¬Èç´¥·¢ H5 µ¯´°¡¢µ÷Óà H5 ·½·¨¡¢ÐÞ¸Ä H5 Ò³ÃæÊý¾Ý | µ÷ÓÃʾÀý´úÂë | // 1. APPÏòH5×¢È뵯´°´úÂë web1.runWebJs('alert("APP´¥·¢H5µ¯´°")'); // 2. APPµ÷ÓÃH5ÖеÄtest·½·¨ web1.runWebJs('test()'); // ÐèÈ·±£H5ÖÐÒѶ¨Òåtest·½·¨ // 3. APP»ñÈ¡H5Ö´Ðнá¹û var result = web1.runWebJs('1 + 2'); // resultֵΪ¡°3¡± console.log('H5´úÂëÖ´Ðнá¹û£º', result); |
|
|