精华内容
下载资源
问答
  • 2019-11-14 12:23:11
    
    window.client  // 是个对象,是安卓注入到JS中的,安卓中所有向JS暴露的方法都在里面
     let android =  window.client; // 将注入对象赋给变量
    
     android.test(param1, param2) // 调用的函数,且传参给安卓。参数的数据类型必须和安卓定义的一致
     let returnValue = android.test(param1, param2) // 接收安卓的返回值,如果是要封装,记得加return,不然一直都是undefined
    
    更多相关内容
  • Android和js的交互主要分为三种:1,安卓调用js的方法。2,js调用安卓方法。3回调,即js调用安卓方法获得数据,然后数据回传给js,js做业务处理。如有疑问可以看博客:...
  • 在uniapp中调用安卓方法

    千次阅读 2020-08-24 09:49:15
    最近项目中要使用一个在线识别车牌的功能,由于公司不想出钱,被迫只能找免费开源的工具实现,发现HyperLPR非常好用,但是只能用于安卓,所以就想到在js中调用安卓。由于项目是用uniapp编写的,所以在此只讲关于...

    最近项目中要使用一个在线识别车牌的功能,由于公司不想出钱,被迫只能找免费开源的工具实现,发现HyperLPR非常好用,但是只能用于安卓,所以就想到在js中调用安卓。由于项目是用uniapp编写的,所以在此只讲关于uniapp的功能。
    说下具体实现功能的步骤(安卓代码在此不多说,因为本人只做js开发,安卓是请的朋友代做的哦)
    在项目中引入安卓的方法,调用安卓的方法,方法名要跟安卓沟通好,让他提前告诉你`

    在这里插入图片描述
    第二部打包成本地静态资源
    在这里插入图片描述
    等待打包完成后将
    在这里插入图片描述
    __UNI__0E4A911文件整个给安卓,安卓中要将文件放在如图的目录下在这里插入图片描述
    这里有个地方要注意,一定要将前端项目的appid填写到data中dcloud_control.xml文件下保持一致在这里插入图片描述
    贴一个demo
    https://gitee.com/mzbzy/disceenrn.git

    展开全文
  • Android:JS调用安卓方法介绍

    千次阅读 2016-09-19 17:59:11
    Android:JS调用安卓方法介绍标签(空格分隔): android jsAndroidJS调用安卓方法介绍 1创建提供给JS调用的方法 2在JS中调用方法 3将对象传递个JS代码 Demo 1,创建提供给JS调用的方法 @android.webkit....

    Android:JS调用安卓方法介绍

    标签(空格分隔): android js


    1,创建提供给JS调用的方法

        @android.webkit.JavascriptInterface
        fun showToast(name: String) {
            Toast.makeText(this, name, Toast.LENGTH_SHORT).show()
        }

    给方法声明@android.webkit.JavascriptInterface后表明该方法允许JS代码调用

    2,在JS中调用方法

        <!DOCTYPE html>
        <html>
            <head>
                <meta http-equiv="Content_Type" content="text/html;charset=utf-8"/>
                <title>Js调用Android</title>
            </head>
            <body>
                <input type="button" value="打招呼" onclick="myObj.showToast('孙悟空');"/>
            </body>
        </html>

    这里调用了上面提供的showToast方法

    3,将对象传递个JS代码

            val settings = mmWebView.settings
            settings.javaScriptEnabled = true
            mmWebView.addJavascriptInterface(object, "myObj")

    第一句取出WebView的设置对象,第二句允许执行JS代码,第三句发送方法所在的对象,并将方法命名为myObj

    Demo

    class MiniBrowserActivity : AppCompatActivity() {
        val js = """
        <!DOCTYPE html>
        <html>
            <head>
                <meta http-equiv="Content_Type" content="text/html;charset=utf-8"/>
                <title>Js调用Android</title>
            </head>
            <body>
                <input type="button" value="打招呼" onclick="myObj.showToast('孙悟空');"/>
            </body>
        </html>
        """
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_mini_browser)
    
            val settings = mmWebView.settings
            settings.javaScriptEnabled = true
            mmWebView.addJavascriptInterface(this, "myObj")
            mmWebView.loadData(js, "text/html;charset=utf-8", "utf-8")
        }
    
        @android.webkit.JavascriptInterface
        fun showToast(name: String) {
            Toast.makeText(this, name, Toast.LENGTH_SHORT).show()
        }
    }

    最终效果截图

    展开全文
  • 第一步: Android对Js的接口,新建AndroidInterfaceForJs.js import android.content.Context; import android.os.Build; import android.os.Handler; import android.os.Looper; import android.support....
  • 需要实现的功能: 点击uniapp页面view,传递参数,调用android原生代码,然后原生代码处理数据,返回到uniapp页面 ...点击调用android原生方法</view> </view> </template> &

    需要实现的功能:

    点击uniapp页面view,传递参数,调用android原生代码,然后原生代码处理数据,返回到uniapp页面

    uniapp 代码:

    <template>
        <view class="content">
          
            <view @click="androidNative">点击调用android原生方法</view>
            
        </view>
    </template>
    <script>
        // 导入自己定义的插件js
        // var elitetyc = require('../../common/plugin.js');
        export default {
            data() {
                return {
                     plugins: elitetyc
                }
            },
            onLoad() {
    
            },
            methods: {
                 androidNative(){
                  this.plugins.CalcNameAddNumFunction(
                      "这段文字是uniapp传过来的",
                      function(result) {
                          uni.showToast({title:JSON.stringify(result),icon:'none',duration:5000});
                      },
                      function(result) {
                          uni.showToast({title:result,icon:"none",duration:5000});
                      }
                  );
                 }
            }
        }
    </script>

    plugin.js

    ! function(root, factory) {  
    if (typeof exports == 'object' && typeof module != 'undefined') {  
        module.exports = factory()  
    } else if (typeof define == 'function' && define.amd) {  
        define(factory)  
    } else {  
        document.addEventListener('plusready', function(){  
        // 修改此处为插件命名  注释---1
        var moduleName = 'elitetyc';   
        
        root.plus[moduleName] = factory()  
        },false);  
    }  
    }(this, function() {  
    //在此处定义自己的方法  注释---2
    var _BARCODE = 'elitetyc';  
    var plugintest = {  
        // 这里定义了一个名叫CalcNameAddNumFunction的方法,传递三个参数,后面两个是回调函数
        CalcNameAddNumFunction: function(num, successCallback, errorCallback) {
            var success = typeof successCallback !== 'function' ? null : function(args) {
                    successCallback(args);
                },
                fail = typeof errorCallback !== 'function' ? null : function(code) {
                    errorCallback(code);
                };
          // 注释---3
            var callbackID = plus.bridge.callbackId(success, fail);
        // 注释---4
            return plus.bridge.exec(_BARCODE, "calcMyNameAddNum", [callbackID, num]);
        }
    };  
    return plugintest;  
    });  

    注释讲解:

    • 注释1:这里是定义插件的名称
    • 注释2:这里也是插件的名称,可以看到在后面的

     

    plus.bridge.exec(_BARCODE, "calcMyNameAddNum", [callbackID, num]);
    
    // 官方讲解有同步与异步,我这里只用了异步
    void plus.bridge.execSync( String service, String action, Array<String> args );  
    service: 插件类别名,对应dcloud_properties.xml的feature name。  
    action: 调用android端插件方法名称。对应java文件的方法名。  
    args: 参数列表。  
    
    void plus.bridge.exec( String service, String action, Array<String> args );  
    service: 插件类别名,对应dcloud_properties.xml的feature name。  
    action: 调用android端插件方法名称。对应java文件的方法名。  
    args: 参数列表。  
    
    • 注释3:回调ID,后面原生代码中会用到,就好像你调用我,我有结果了,我该知道我把数据返回给谁把?这个id就是这个作用
    • 注释4:在上面有讲到过,这里需要注意的是前两个参数,第一个参数是插件类别名,后面再原生代码中的dcloud_properties.xml文件中会用到
      第二个参数,是android原生代码中的方法名要一致
      3.到这里uniapp页面差不多都编写完成了,我们使用android studio导入sdk中的插件项目示例HBuilder-Integrate-AS

    安卓代码:

    新建一个java文件,并且继承自:StandardFeature ,我写好的代码如下,功能很简单,主要就是为了完成uniapp调用原生,实际的可以根据自己业务来搞

    package io.dcloud.simple;
    
    import org.json.JSONArray;
    
    import io.dcloud.common.DHInterface.IWebview;
    import io.dcloud.common.DHInterface.StandardFeature;
    import io.dcloud.common.util.JSUtil;
    
    public class ElitetycPluginTest extends StandardFeature {
    
        /**
         * 定义一个方法 将自己的名字加上数字进行返回
         * @param pWebview
         * @param array
         */
        public void calcMyNameAddNum(IWebview pWebview, JSONArray array){
    //        获取回调ID
            String CallBackID = array.optString(0);
    //        获取参数并计算(这里模拟原生处理)
            String newstring = "我是原生代码返回::"+array.optString(1);
    //        构建回传参数
            JSONArray newArray = new JSONArray();
            newArray.put(newstring);
    //        JSUtil.execCallback(IWebview pWebViewImpl,String pCallbackId,String pMessage,int pStatus,boolean pKeepCallback)
    //        参数:
    //        pWebViewImpl - webview对象
    //        pCallbackId - 回调方法ID
    //        pMessage - 回调信息
    //        pStatus - 回调code值 如:OK、ERROR
    //        pKeepCallback - js层回调function是否要保存
    
            // 第一个参数是当前函数的入参,直接传入, 第二个是根据入参获取的回调id,第三个是回调的数据,是一个json数组
            JSUtil.execCallback(pWebview,CallBackID,newstring, JSUtil.OK,false);
        }
    }
    

    这里的方法名calcMyNameAddNum需要和plugin.js中的plus.bridge.exec( String service, String action, Array<String> args ); 方法的action参数一致,必须一模一样

     

    修改安卓配置文件:把uniapp打包好的原生代码按官网说的导好,

    • 修改dclould_properties.xml ,在里面新建
    • <feature name="elitetyc" value="com.example.H5PlusPlugin.ElitetycPluginTest"/>
      

       

    然后点击运行即可  就没了

     

     

    展开全文
  • JavaScript调用Android方法,向Android方法传递json数据。
  • unity调用安卓方法实现apk文件的安装。使用最新androidx框架。亲测支持安卓7以上。附有安卓源码开发工具android studio4.1, 需要unity2020.2.0以上版本,直接在unity打包安卓即可测试。安装包在根目录下可直接安装...
  • 安卓android期末考试复习要点.docx
  • H5的js调用安卓方法

    千次阅读 2021-12-07 14:54:43
    一个应用既有安卓端又有ios端,为了同步时间进度,打算用H5网页替代原生的方法,那么在H5中,网页的返回按钮怎么调用安卓方法,finish掉Activity呢? 方法1 安卓: // webview的配置 webview.getSettings()....
  • h5调用安卓方法

    2019-08-14 22:51:00
    jsSetApp() { var jsonObj = JSON.stringify({ // type:13, shareImgUrl: "", shareDesc: "分享", shareLinkUrl: "http://192.168.0.1...
  • 目录 首先在界面文件中使用WebView控件(activity_...实现效果截图:(html中的控件调用Android里面的方法) 首先在界面文件中使用WebView控件(activity_main.xml): <?xml version="1.0" encoding="u.
  • 关于安卓调用js中的方法,参看我的文章android使用webView,实现和js中的方法调用 在js中调用安卓的原理其实很简单就是用了 “映射+调用” 首先前端的html界面有如下代码: <a onclick="dianwo()">点我</a&...
  • H5调用iOS和安卓方法

    千次阅读 2022-03-26 15:29:35
    返回按钮调用iOS和安卓方法 <van-button class="back" icon="arrow-left" size="normal" @click="back"></van-button> back () { if (window.webkit != undefined) { window.webkit.message...
  • uniapp调用android原生方法

    千次阅读 2021-08-09 15:47:16
    1.编写安卓端代码 public class ElitetycPluginTest extends StandardFeature { public void calcMyNameAddNum(IWebview pWebview, JSONArray array){ //System.out: ["plus141628493886334","这段文字是uniapp传...
  • Unity调用Android原生方法

    千次阅读 2020-12-24 16:30:04
    因公司需要项目需要调用Android的一些东西,看了很多大神的经验,试了不知道多少次终于成功在Unity中调用Android里面的方法了(大笑大笑大笑), 最后总结下加深记忆方便之后项目需要时使用。(笔记是之前做项目的...
  • 安卓Android源码——强行结束APP进程的方法.zip
  • 这种情况下,有时候会想要在H5中调用android原生写的的方法(ios暂未实践) h5内调用Android方法 // 调用android原生定义的方法 (saveWebToken在Android代码中已经定义好),并传入参数 if (window.android &...
  • 安卓一般使用Java开发,重新学习比较麻烦,这篇文档介绍了使用C语言开发安卓android)系统的步骤及方法,内容比较详细,很有借鉴意义。
  • Vue调用Android方法

    千次阅读 2020-06-29 20:29:14
    1、在vue页面中自己写个按钮,通过点击按钮来调用Android封装好的方法。 <template> <div> <button @click="scan()">点击</button> </div> </template> 2、点击时咱们给...
  • // 定义方法 const testFunction = (arg) => { alert(`调用成功${arg}`); } useEffect(() => { // 在useEffect中暴露方法到window上。 // ts 中可以这样 (window as any).test = testFunction;
  • 主要介绍了vmware虚拟机安装安卓Android x86的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • html5唤起原生ios和安卓android app的方法
  • 此demo主要完成的是webview中H5调用android中的方法,以及android调用H5方法,也就是Java与js的交互,简单好用。
  • 需要实现的功能:点击uniapp页面view,传递参数,调用android原生代码,然后原生代码处理数据,返回到uniapp页面uniapp 代码:plugin.js注释讲解:注释1:这里是定义插件的名称注释2:这里也是插件的名称,可以看到在...
  • android安卓app开发之crosswalk手机浏览器教程嵌入使用方法.zip
  • Android调用链追踪方法

    千次阅读 2020-05-12 16:23:52
    开启debuggable 修改AndroidManifest.xml,添加android:debuggable=“true” 修改系统ro.debuggable的属性 ./mprop ro.debuggable 1(部分手机无效) 下载...开启跟踪方法按钮 再次点击该按钮即可停止追踪。 分析工具
  • 本文实例讲述了Android实现调用震动的方法。分享给大家供大家参考,具体如下: 调用Android系统的震动,只需要一个类 那就是Vibrator ,这个类在hard包中,一看系统级的服务,又要通过manifest.xml文件设置权限了 &...
  • JS或TS调用原生Android方法

    千次阅读 2020-09-26 21:59:14
    JS调用Android方法,Ts调用android方法,H5App混合开发JS或TS调用原生方法,JS调用原生,TS调用原生
  • 1.加入权限在manifest.xml文件中要添加 <uses android:name=”android.permission.READ_PHONE_STATE”>2.代码 代码如下:package net.sunniwell.app; import android.app.Activity; import android.os.Bundle; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,459,389
精华内容 583,755
关键字:

安卓方法