当前位置: 首页 > wzjs >正文

山东济南公司网站wordpress用户注册邮件

山东济南公司网站,wordpress用户注册邮件,wordpress 关联插件,中国零售业博览会在 Android 开发中,JavaScript(JS)调用原生 Android 接口主要通过 WebView 组件实现。以下是常见的 3 种核心方式及具体实现逻辑: 1 1. addJavascriptInterface 注入接口​​ ​​原理​​:通过 WebView 向 JS 暴露…

在 Android 开发中,JavaScript(JS)调用原生 Android 接口主要通过 WebView 组件实现。以下是常见的 3 种核心方式及具体实现逻辑:

1

1. addJavascriptInterface 注入接口​

​原理​​:通过 WebView 向 JS 暴露一个 Java 对象,JS 可直接调用该对象中被 @JavascriptInterface 注解标记的方法
​步骤​​:

  • ​定义接口类​​:
    public class WebAppInterface {Context mContext;WebAppInterface(Context c) { mContext = c; }@JavascriptInterfacepublic void showToast(String msg) {Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();}
    }
  • ​注入接口到 WebView​​:
    webView.getSettings().setJavaScriptEnabled(true);
    webView.addJavascriptInterface(new WebAppInterface(this), "AndroidBridge");
  • ​JS 调用​​:
    window.AndroidBridge.showToast("Hello from JS!");

​注意事项​​:

  • ​安全风险​​:若未使用 @JavascriptInterface 注解,可能导致任意方法被调用(如系统敏感 API)
  • ​API 版本​​:需最低支持 API 17(Android 4.2)

​2. 拦截 WebChromeClient 对话框​

​原理​​:通过重写 WebChromeClient 的对话框回调方法(如 onJsPrompt),解析 JS 发送的指令
​步骤​​:

  • ​自定义 WebChromeClient​​:
    webView.setWebChromeClient(new WebChromeClient() {@Overridepublic boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {if (message.startsWith("native:")) { // 协议约定handleNativeCall(message); // 解析并执行原生逻辑result.confirm("success"); // 返回结果给 JSreturn true;}return super.onJsPrompt(view, url, message, defaultValue, result);}
    });
  • ​JS 调用​​:
    prompt("native:showToast", "{'msg':'Hello'}"); // 通过 prompt 发送指令

​适用场景​​:

  • 需要双向通信(JS 可获取原生返回值);
  • 兼容低版本 Android(无需依赖 @JavascriptInterface

​3. 拦截 URL Scheme​

​原理​​:JS 触发特定格式的 URL 请求(如 myapp://action?params),Android 通过 shouldOverrideUrlLoading 拦截并处理
​步骤​​:

  • ​自定义 WebViewClient​​:
    webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if (url.startsWith("myapp://")) { // 协议约定parseUrl(url); // 解析 URL 并执行对应逻辑return true; // 阻止默认加载}return super.shouldOverrideUrlLoading(view, url);}
    });
  • ​JS 调用​​:
    window.location.href = "myapp://showToast?msg=Hello"; // 或通过 iframe 触发

​优缺点​​:

  • ​优点​​:兼容性最好(支持所有 Android 版本);
  • ​缺点​​:仅支持单向调用(JS 无法直接获取原生返回值)

​安全建议​

  1. ​输入校验​​:对 JS 传递的参数进行严格校验,防止注入攻击
  2. ​最小权限原则​​:仅暴露必要的接口方法,避免敏感操作(如文件读写)
  3. ​HTTPS 加密​​:加载远程页面时使用 HTTPS,避免中间人攻击


文章转载自:

http://XPtfOEvk.ghxtk.cn
http://oTqmFhIL.ghxtk.cn
http://jnnhxyE2.ghxtk.cn
http://Oa4xvU6z.ghxtk.cn
http://wM9PIYSz.ghxtk.cn
http://EWZVjcBP.ghxtk.cn
http://Z1QaTrm0.ghxtk.cn
http://AYJjscxT.ghxtk.cn
http://2bcbzGFX.ghxtk.cn
http://RZOmrWT7.ghxtk.cn
http://PKEZlEL3.ghxtk.cn
http://V5CiyMrg.ghxtk.cn
http://rHOuB8BM.ghxtk.cn
http://hLNNQTQD.ghxtk.cn
http://iYbHDoEW.ghxtk.cn
http://xlWpSAKY.ghxtk.cn
http://RhWItls2.ghxtk.cn
http://iUSF5Xdh.ghxtk.cn
http://UZLVZ0OL.ghxtk.cn
http://9k5XmZA4.ghxtk.cn
http://KUFil0Qr.ghxtk.cn
http://nM3wpSW5.ghxtk.cn
http://8CRWp1cI.ghxtk.cn
http://9bBH6s02.ghxtk.cn
http://PHcwtdxv.ghxtk.cn
http://MPldgtHQ.ghxtk.cn
http://cuPHHTSf.ghxtk.cn
http://dUGSFRAg.ghxtk.cn
http://Jz9Qljr3.ghxtk.cn
http://hQBWCRhK.ghxtk.cn
http://www.dtcms.com/wzjs/776755.html

相关文章:

  • 要建网站有产品做推广 选哪个 网站
  • 台州企业做网站合肥网站建设是什么意思
  • 个人建个网站多少钱侨联网站建设方案
  • php美食网站开发背景免费的空间网站
  • 淘宝客网站免费建站扬州市建筑信息平台
  • 做项目的编程网站空白word个人简历
  • 怎样提高网站转化率海口本地网站
  • 58同城石家庄网站建设上海发布网站
  • 海东商城网站建设网站首页制作的过程
  • 5 网站建设的基本步骤是哈尔滨市招标网官网
  • 全国培训加盟网站建设食品网站建设需求分析
  • 做网站要审批吗uniform wordpress
  • 深圳 网站托管深圳被点名批评
  • 网站建设常用英语wordpress怎么添加管理员
  • 适合新手做的网站静态wordpress怎么编辑表格
  • 网页设计网站多少钱能看的网址的浏览器
  • 景观建设网站集团公司网页设计内容
  • 张家港优化网站seo怎么可以黑网站域名
  • 网站开发 开票设计网红店铺
  • 个人做网站时不要做什么样的网站手机网站和pc网站
  • 建网站要学哪些软件dede免费网站模板下载
  • 邯郸网站设计哪家专业dw个人简历网页制作
  • 企业网站建设600元宝应宝楠国际学校
  • 贵阳地铁建设网站网页设计制作课程表
  • 大连网站开发招聘WordPress小程序二次修改
  • 万网做网站花多少钱公众号微信
  • 如何去建立和设计一个公司网站网站前端怎么做方法
  • 亳州建设局网站网站建设方面的书籍书籍
  • 网站建设对我有什么好处网站里弹窗怎么做
  • 红安城市建设局投诉网站网站投票系统 js