问题标签 [android-jsinterface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1592 浏览

javascript - Android:全屏播放html视频

我正在将 HTML 页面加载到包含视频列表的 web 视图中。现在,当我尝试播放视频时,它们正在播放,但我无法让它们全屏播放。我在我的 HTML 文件中使用了以下代码,在调试时发现“element.webkitRequestFullScreen”显示“未定义”。在网上搜索时,我找到了 videoEl.webkitEnterFullScreen();,但读到这在 Android 4 上不起作用。真的可以这样做吗?还是我应该放弃这个想法?

0 投票
2 回答
3131 浏览

java - 如何在 Javascript 接口中将 Javascript 函数作为参数传递?

如何在Javascript接口中将函数作为参数传递,将其保存为字符串然后调用?

例如,我描述了Javascript Interface

添加它:

JS

注意:以这种形式从需要中传递函数JS,而不是作为字符串或 json。

但事实上,在setMyFunction我得到"undefined"但期望"window.application.setMyFunction(function(){ //some code here...});"。请告诉我该怎么做,我将不胜感激!

0 投票
0 回答
748 浏览

android - Android 4.4:无法从 Java 脚本调用 Java 方法

我正在尝试使用 java 脚本在我的活动中调用一个方法

这适用于 4.1.2 JB,但不适用于 4.4 Kitkat,

任何想法,如何解决这个问题?

0 投票
1 回答
202 浏览

javascript - 从 Android 界面覆盖 javascript 函数调用

我在 WebView 中显示了一个网页。我没有网页的控制权。该网页正在执行一个 javascript,当它解析一个延迟对象时,它会加载一个 URL。我想要的是捕捉deffered.resolve()并做其他事情。

有没有办法通过 a 来做到这一点@JavascriptInterface

0 投票
1 回答
5205 浏览

android - Javascript 接口,错误“未捕获的错误:在 NPObject 上调用方法时出错”

在我的 Android 应用程序中,我使用 WebAppInterface 从 Javascript 桥接 Java。

我的 .html 文件包含一些运行“Android.canPlay();”的 JS 在某些时候。

在我的应用程序中,函数“canPlay()”会触发一个变量监听器。

当变量监听器触发时,如果满足条件,一些文件被重命名(临时文件,下载时带有 .tmp 附加扩展名,包括 .html 文件(所以它是 .html.tmp,原始 .html 存在于旁边)它))

重命名发生后,Web 视图被重新加载(我尝试同时使用一个函数和“.loadUrl()”——两者都给出错误)

当需要在 webview 中重新加载 html 文件时,出现错误:

E/Web 控制台:未捕获的错误:在 NPObject 上调用方法时出错。在文件:////mnt/sdcard/Download/qwerty/playlists/29/2/index.html:206

第 206 行是“Android.canPlay()”调用。

注意事项 - 如果我在重新加载 webview 之前不重命名文件,而是从运行的后台服务重命名,我没有这个错误(尽管我确实得到了一个关于在 WebViewCoreThread 上运行的东西)

一些代码:

Web应用程序接口

可变侦听器(通过侦听器类触发)(删除了一些代码,例如文件位置的共享首选项)

文件重命名器类

0 投票
0 回答
179 浏览

javascript - 从设备浏览文件时的android本机和javascript通信

我已经在 webview 中打开了 html 页面。现在单击 webview 中的任何按钮,我希望用户从图库中选择图像并在 webview 中显示该图像。

onCreate() 方法中的代码:

添加了javascript接口:

onActivityResult() 方法:

现在,每当我单击 webview 中的按钮时,它都会打开图库并让用户从图库中选择图像。但是我怎样才能将该图像路径再次发送到 javascript,以便它可以在 webview 中显示该图像?

0 投票
1 回答
4488 浏览

android - Android:如何将本地 javascript 文件加载到 WebView

我正在尝试编写一个执行简单toast. 当我尝试HTMLtoast. 但是当我将相同的script代码放在文件assert夹(script.js)下的单独文件中时,它无法注入javascript.

我支持 API 15 及更高版本。

这是代码,我尝试在其中注入script.

这是我的javascript代码。(脚本.js)

这是我的Javascript界面:

如何注入javascript文件?任何帮助表示赞赏。

我的项目结构是这样的:

猫日志显示:

0 投票
3 回答
432 浏览

javascript - Android:如何通过javascript启动android的功能

我有一个代码可以说出从 html 传递的文本。我能够使用下面的代码使其工作。

这是代码:

这是我的 Java 脚本界面:

上面的代码按预期工作。我的问题是如何通过 javascript 调用 TTS 或任何其他功能(如警报或拨打电话等)。这意味着可以从 javascript 调用 tts.speak() 方法。或者以另一种方式,我想通过 javascript 调用 androids TTS,而不是创建 Java 脚本接口(如上)。这样我就不必为我要添加的每个功能向用户提供更新。

示例:请注意:下面是一个示例,我知道这是不正确的。这是为了给你一个我需要的概述。

有没有我需要添加的插件。请告诉我。任何帮助表示赞赏。

0 投票
0 回答
135 浏览

javascript - 再次登录时Android出现错误:未捕获的错误:在NPObject上调用方法时出错

我在 Androids Webview 和 Javascript 接口上遇到问题,第一次我成功登录,当我成功注销并再次我想登录但在第二次我的登录屏幕卡在登录页面上并且没有再次登录,任何帮助建议将不胜感激谢谢。

这是我第二次登录时的 logcat 错误并且我的登录屏幕卡住了:

这是我的登录代码:

这是我第二次登录时的屏幕截图,我的 UI 卡住了:

在此处输入图像描述

0 投票
0 回答
130 浏览

android - 通过 JsInterface 从另一个活动调用方法

我正在尝试开发一种从 JSInterface 触发应用内购买的方法。

我有两节课。

第一个是 MainActivity,我在其中使用 Iabhelper 实现了 inAppBilling。此活动包含我用来购买物品的方法:

第二个是 JsInterface,它从用户在 webview 中单击获取项目 sku:

我的测试表明: