一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Autojs中優(yōu)雅的使用webView

汽車電子技術(shù) ? 來源:安卓腳本 ? 作者:Dcrclub ? 2023-03-03 13:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

[本文適用于Autojs Pro 9.x版本]

對于需要寫UI的腳本來說,使用安卓的xml方式去寫一個(gè)好看的UI出來,在autojs中就顯得過于艱難,雖說autojs在很早之前就支持了安卓原生的方式寫UI,但對于只會js的我來說還是太難了...

但不知道從哪個(gè)版本起,autojs中封裝了一個(gè)jsBridge...圖片,這樣就能直接在webview的html文件中直接和autojs進(jìn)行交互, 相比xml,autojs的用戶中我感覺更多的用戶是偏向于web前端的, 習(xí)慣了 html+css+js的開發(fā), 那么今天就使用一個(gè)簡單的示例來描述一下怎么在AutojsPro版本中使用html來寫UI界面

首先我們先創(chuàng)建一個(gè)v9的項(xiàng)目,簡單規(guī)劃一下目錄結(jié)構(gòu):

圖片

main.js文件內(nèi)容如下:

"ui";
$ui.layout(
    
        "web" w="*" h="*">class="hljs-name"webview>
    class="hljs-name"vertical>
);


const jsBridge = $ui.web.jsBridge;
const webRoot = $files.join( $files.cwd(), "html" );
//在webview中加載本地的html文件
$ui.web.loadUrl( `file://${webRoot}/index.html` );


//在autojs的控制臺輸出webview控制臺的消息
$ui.web.events.on( "console_message", ( event, msg ) => {
    console.log( msg.message() );
} );
//在webview中調(diào)用autojs的方法
jsBridge.handle( 'show-log', () => {
    $app.startActivity( "console" );
} )
.handle( "main", () => {
    main();
} )
.handle( "setStatusBarColor", ( event, color ) => {
    //根據(jù)web頁面的背景色來設(shè)置安卓任務(wù)欄背景色
    $ui.statusBarColor( color );
} )


function main() {
    //這里寫自動化腳本邏輯
    console.show();
    console.log( "這里執(zhí)行了autojs的自動化腳本邏輯" );
    sleep( 1000 );
    console.info( "這里執(zhí)行了autojs的自動化腳本邏輯" );
    sleep( 1000 );
    console.error( "這里執(zhí)行了autojs的自動化腳本邏輯" );
    sleep( 1000 );
    console.log( "腳本執(zhí)行結(jié)束" );
    sleep( 2000 );
    console.hide();
}

使用jsBridge的handle來定義一個(gè)方法供html調(diào)用

在html目錄下的index.html中即可使用html代碼來構(gòu)建一個(gè)漂亮的UI界面了,和在瀏覽器中開發(fā)并沒有什么不同,但是如果你需要使用jQuery的話,需要注意符號需要變更一下,因?yàn)樵赼utojs中也是用了符號(并且不能修改),所以只能修改一下jq的$符號

使用jQuery的示例:

html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document<span class="hljs-name"title>
    <script src="autojs://sdk/v1.js"><span class="hljs-name"script>
    <script src="../javascript/jquery-3.6.1.min.js"><span class="hljs-name"script>
    <style type="text/css">
         body {background:#FFFFFF;color:#333;margin:0 auto;padding:0;}
         div{margin:0 auto;padding:0}
        .main button {width: 120px;height: 50px;}
        .bottom {width:100%;}
        .bottom .start {position:fixed;bottom:0px;width:100%;height:56px;display:block;}
<span class="hljs-name"style>
<span class="hljs-name"head>
<body>
    <div class="main">
        <button type="button">打開日志界面<span class="hljs-name"button>
    <span class="hljs-name"div>
    <div class="bottom">
        <button type="button" class="start">運(yùn)行腳本<span class="hljs-name"button>
    <span class="hljs-name"div>




    <script>
        //注意這里需要轉(zhuǎn)換一下jq的$符號
        var $jq = jQuery.noConflict();
        $jq( function() {
            //點(diǎn)擊頁面的button會打開autojs的控制臺顯示日志
            $jq( ".main button" ).click( function() {
                $autojs.invoke( "show-log" );
            } )
            //根據(jù)頁面body的背景色來設(shè)置安卓任務(wù)欄的顏色
            // var bgColor = $jq( "body" ).css( "background-color" )
            // console.log( bgColor );
            $autojs.invoke( "setStatusBarColor", "#FFFFFF" );
            //點(diǎn)擊開始按鈕,運(yùn)行腳本邏輯
            $jq( ".start" ).click( function() {
                $autojs.invoke( "main" );
            } );
        } );



如此在html中, 你即可與autojs進(jìn)行交互了, 上面的例子中,使用jq,當(dāng)然你也可以使用vue來開發(fā)頁面, 亦或者使用vue-cli框架開發(fā),具體的請參考app中的示例部分,這里不做演示, 趕緊copy代碼自己試一試吧.

必須注意的是: 在html中的head部分必須引入一個(gè)內(nèi)部的js文件

<script src="autojs://sdk/v1.js">class="hljs-name"script>
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • XML
    XML
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    33678
  • ui
    ui
    +關(guān)注

    關(guān)注

    0

    文章

    207

    瀏覽量

    21741
  • 安卓
    +關(guān)注

    關(guān)注

    5

    文章

    2150

    瀏覽量

    58547
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    QML加載模塊 WebView 與C++代碼通信控制WebView模塊的隱藏與顯示

    QML WebView 模塊是用于在應(yīng)用程序嵌入 Web 內(nèi)容的模塊。它提供了一個(gè) WebView 組件,可以通過載入 URL 或 HTML 內(nèi)容來顯示 Web 頁面。
    的頭像 發(fā)表于 05-23 09:12 ?4463次閱讀

    【鴻蒙】webview內(nèi)存泄漏問題的分析報(bào)告

    1 關(guān)鍵字 webview;內(nèi)存泄漏 2 問題描述 問題現(xiàn)象:在 3.1release 版本和 3.2bete1 版本,在 RK3568 上使用 etsWeb 和其他瀏覽器時(shí),webview 所占
    的頭像 發(fā)表于 03-02 15:12 ?2485次閱讀

    鴻蒙Flutter實(shí)戰(zhàn):04-如何使用DevTools調(diào)試Webview

    則為 Webview 的調(diào)試方法。 ## 配置 Webview CustomView.ets 文件,在生命周期aboutToAppear處配置允許調(diào)試: ```ets aboutToAppear
    發(fā)表于 10-22 21:53

    Android安全開發(fā)之WebView的地雷

    `Android安全開發(fā)之WebView的地雷0X01 About WebView在Android開發(fā),經(jīng)常會使用WebView來實(shí)現(xiàn)W
    發(fā)表于 09-09 19:35

    使用WebView組件實(shí)現(xiàn)應(yīng)用與Web頁面間的通信

    1. 介紹開發(fā)者如果需要在自己的應(yīng)用嵌入Web頁面,可以通過WebView組件進(jìn)行開發(fā)。WebView組件派生于通用組件Component,可以像通用組件一樣使用。本教程以應(yīng)用嵌入WebVi
    發(fā)表于 08-26 10:39

    在哪里設(shè)置鴻蒙WebView的層級?

    不管WebView在布局哪個(gè)層級,都會最外層顯示出來,這個(gè)有啥處理辦法嗎?
    發(fā)表于 03-25 09:51

    webview組件能獲得cookie數(shù)值,但app進(jìn)程一結(jié)束cookie的數(shù)值就失效是為什么?

    做一個(gè)webview組件,思路如下:用戶首次登陸,cookie為空,webivew.load(url),然后通過onPageLoaded獲得cookie,再setCookie,下次用戶二次登陸可以
    發(fā)表于 03-25 10:36

    何在鴻蒙的webview上面放其它組件?

    需求:需要在鴻蒙的webview上顯示一個(gè)網(wǎng)頁,在webview上面再添加一個(gè)文本,但是無論怎么webview都會覆蓋掉其它組件,這個(gè)是鴻蒙把webview的優(yōu)先級設(shè)置 最高了嗎?無論
    發(fā)表于 03-28 10:00

    harmonyos webview布局創(chuàng)建,增加load加載布局不顯示是為什么

    問題:webview布局創(chuàng)建,增加load加載布局 實(shí)際運(yùn)行不顯示加載布局布局webview的ohos:height=“200vp” 指定一個(gè)高度后 load布局可以顯示
    發(fā)表于 04-02 15:16

    harmonyos webview布局增加load不顯示是為什么?

    問題:webview布局創(chuàng)建,增加load加載布局實(shí)際運(yùn)行不顯示加載布局布局webview的ohos:height=“200vp”指定一個(gè)高度后load布局可以顯示
    發(fā)表于 06-13 10:19

    iOS系統(tǒng)webview與JS的交互

    昨天寫了Swift和JS的交互,既然寫了就把OC的也寫了出來: 第一部分:webview與Js的交互 第二部分:設(shè)定cookie 第三部分:修改header頭 1 交互 #import
    發(fā)表于 09-25 15:41 ?0次下載

    深入理解WebView

    摘要 作為Android開發(fā)者,我們都知道在手機(jī)內(nèi)置了一款高性能 webkit 內(nèi)核瀏覽器,在 SDK 中封裝為一個(gè)叫做 WebView 組件。今天就為大家講講AndroidWebView
    發(fā)表于 10-11 10:16 ?0次下載

    鴻蒙webview的使用和JS交互

    日常我們在開發(fā)項(xiàng)目時(shí),為了項(xiàng)目快速的開發(fā)和迭代,難免會用到H5頁面。使用鴻蒙進(jìn)行項(xiàng)目開發(fā)時(shí),也一樣免不了要加載H5頁面,在移動開發(fā)打開H5頁面需要使用WebView組件。同時(shí),為了和H5頁面進(jìn)行數(shù)據(jù)交換,有時(shí)候還需要借助JSBridge來實(shí)現(xiàn)客戶端與H5之間的通訊。
    的頭像 發(fā)表于 02-28 10:56 ?3029次閱讀
    鴻蒙<b class='flag-5'>webview</b>的使用和JS交互

    Autojs后臺靜默發(fā)短信

    要判斷是否發(fā)送成功和接收成功,就需要注冊兩個(gè)廣播的監(jiān)聽.來得到結(jié)果.下面分別記錄一下免費(fèi)版Autojs和AutojsPro8.0以上的版本如何注冊一個(gè)監(jiān)聽.
    的頭像 發(fā)表于 03-03 13:47 ?3695次閱讀

    如何使用Autojs給指定QQ好友點(diǎn)贊

    使用Autojs來給自己的好友點(diǎn)贊,復(fù)制下面的代碼到autojs這個(gè)腳本工具,執(zhí)行即可!
    的頭像 發(fā)表于 03-03 14:24 ?1341次閱讀