- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 android 开发的新手,我正在尝试制作一个允许我启动 android 相机应用程序的 WebView。如何使用我的 JavaScriptInterface 调用主类中的方法?
谢谢。
public class MainActivity extends Activity {
public static final int MEDIA_TYPE_IMAGE = 1888;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView mainWebView = (WebView) findViewById(R.id.mainWebView);
mainWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
WebSettings webSettings = mainWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mainWebView.setWebViewClient(new MyCustomWebViewClient());
//mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
mainWebView.loadUrl("file:///mnt/sdcard/page.html");
}
private class MyCustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
public void takePicture() {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, MEDIA_TYPE_IMAGE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MEDIA_TYPE_IMAGE) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
}}
}
package com.cargowise.view;
import android.content.Context;
import android.os.Handler;
import android.widget.Toast;
public class JavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
public void takePic() {
MainActivity.takePicture();
}
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
最佳答案
您已经存储了应该能够用来访问您的 MainActivity
的上下文。
改变这个:
public void takePic() {
MainActivity.takePicture();
}
对此:
public void takePic() {
((MainActivity)mContext).takePicture();
}
注意:您可能希望添加一些类型检查或限制提供给 MainActivity
的上下文类型以强制执行正确的行为。
关于Android - 从 JavaScriptInterface 中的主类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11515250/
我有一个问题,如果我从 javascript 文件调用 android 函数并将参数传递给它,所有参数都将作为字符串传递吗? 例如 Javascript var cars = ["Saab", "Vo
我正在使用 Android 使网页与我的应用交互。因此,我浏览了文档和教程并最终提出了 this site .在其中,开发人员列出了您应该在希望 WebView 访问的任何函数之前包含 @Javasc
我正在使用 WebView 在我的应用程序中执行一些 JS 代码。到目前为止,这在我的 KitKat (targetSdk) 设备以及 2.2 (minSdk) 模拟器上运行良好。 但在 4.3 Ne
我有 WebView 来显示我的网页,并且我想使用 Javascript 运行 Navigation Drawer。 我的 logcat 没有显示任何错误消息,但它没有运行/ 我的 JavaScrip
我的 Android 应用程序中有一个 WebView 。我只想在浏览器上查看网页时才显示横幅。我创建了一个界面,它测试得很好,但由于网页无法识别该功能,因此页面上的其他 javascript 无法加
我刚刚将我的 Galaxy Tab2 从 ICS 软件更新到 Jelly Bean。我正在开发一个应用程序,我在其中加载一些带有一些 js 文件的 Html,调用一些用 Javascript 文件编写
Phonegap 还是 JavascriptInterface? 我要开发一个 Android Web 应用程序,并且想知道是否应该使用 PhoneGap,还是使用 JavascripInterfac
我有一个 webview 忽略了我所有的 javascript 接口(interface)方法,或者至少看起来是这样。当我从普通浏览器运行该网站时,它会抛出错误,因为没有按预期定义接口(interfa
正如在 official docs 上明确指出的那样,API 级别 JELLY_BEAN_MR1 及更高级别需要使用 @JavascriptInterface,以便从 webview 端访问 java
我目前正在 web View 中以 HTML 的形式向用户显示一堆数据。我在每个条目下方都有一些链接,单击这些链接应该在我的应用程序中调用一个方法。 Android WebView 的 javascr
我是 android 开发的新手,我正在尝试制作一个允许我启动 android 相机应用程序的 WebView。如何使用我的 JavaScriptInterface 调用主类中的方法? 谢谢。 pub
我正在尝试将 TextView 动态添加到线性布局中。但有一个问题。 在我的按钮中,这段代码运行得很好: TextView ASDF = (TextView) getLayoutInflater().
我有一个应用程序,它像浏览器一样运行并在 android webview 中显示结果。其中,一些结果是从我自己的服务器呈现的,并使用 javascriptInterface 对象调用 Java 方法。
我的 MainActivity 中有: webView.addJavascriptInterface( new JavaScriptInterface( this ), "ajaxHandler"
为了向 javascript 公开 java 方法,我使用了 mWebview.addJavascriptInterface(new JSInterface(this),"Android"); 当我实
我有以下 Java 接口(interface), public interface JavascriptInterface { public MyIterator getItems(); }
我有一个非常奇怪的问题,我的应用程序是一个电子阅读器。为了调用 Web View 的函数,我使用 JavaScript 类: public class MyJavaScriptInterfac
嘿,我正在使用一个必须与一些 javascript (coffeescript) 代码交互的应用程序。代码 JS 代码如下所示: $(".content").on "click", ".feedbac
我需要在 WebView 中调用一个包含一些 javascript 的网站。 JavaScript 调用嵌套对象中的方法,如下所示: window.plugins.anObject.method();
我想在 WebView 环境中获取并显示来自服务器的文本,同时在 WebView 中获取消息我想使用 显示相同的消息 toast 类。我写了下面的代码但是它不显示带有 Toast 类的文本。 和 p
我是一名优秀的程序员,十分优秀!