无法在我的 Android 应用程序中从 Javascript 调用我的 Java 类
Unable to call my Java class from Javascript In my Android App
我不知道下面的代码出了什么问题,我试图使用 webview addJavainterface 从 JavaScript 代码调用我的 Java 类,但似乎不起作用,我尝试按照 android 网站上的教程进行操作,但仍然没有运气帮助,我实际上不知道缺少什么.. 这是我的代码...我的JavaScript代码是这样的:
public class HomeFragment extends Fragment {
private WebView webView;
private Bundle webViewBundlehome;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.home_layout, container, false);
webView =(WebView) rootView.findViewById(R.id.webViewHome);
WebSettings websettings = webView.getSettings();
websettings.setJavaScriptEnabled(true);
websettings.setDomStorageEnabled(true);
webView.addJavascriptInterface(new JavaScriptInterface(),"Android");
if(webViewBundlehome==null){
webView.loadUrl("file:///android_asset/www/index.html");
}
else
{
webView.restoreState(webViewBundlehome);
}
return rootView;
}
@Override
public void onPause() {
// TODO Auto-generated method stub
super.onPause();
webViewBundlehome = new Bundle();
webView.saveState(webViewBundlehome);
}
public class JavaScriptInterface {
private Activity activity;
public void opencart(String cart_id){
Intent intent = new Intent(activity, Cartegory.class);
intent.putExtra("cart_id", cart_id);
startActivity(intent);
}
public void openproduct(String pro_id){
Intent intent = new Intent(activity,view.class);
intent.putExtra("pro_id", pro_id);
startActivity(intent);
}
}}
$('#mybutton').on("click",function(){
Android.openproduct(product_id);
})
android:targetSdkVersion="19"
由于您的目标是 API 19,因此您需要使用 @JavascriptInterface
来装饰opencart
和openproduct
java 方法。详情请看这里。
但它看起来像
class JsObject {
@JavascriptInterface
public String toString() { return "injectedObject"; }
}
我还会做一些简单的事情(例如日志消息)来确保javascript调用正常工作;然后更新为启动活动。
相关文章:
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 为什么我的函数没有被调用呢
- 我可以让我的Ajax调用引起一个“;进行中”;光标
- 为什么我的ajax在提交用@HtmlRenderPartial加载的表单时只调用fire一次
- 如何验证我对StockTwits API的调用
- 我应该如何声明我的自调用函数
- 当在文档中拖动mouseup/mouseleve时,我想调用我的Ajax请求
- 我如何防止错误“;未捕获(在promise中)DOMException:play()请求被对pause()的调用中断&”
- 为什么没有调用我的流错误处理程序
- 当我的单元测试失败时,回调被调用了两次
- 我的jQuery加载请求是否被调用了两次
- JQuery$.ajax()发布数据以调用我的控制器中的方法
- 如何在javascript中调用onclick事件?我没有'我不想在我的HTML页面中使用任何事件
- 从未达到我的函数调用-ReactJs 0.12.0
- 为什么我的Jquery.ajax调用会触发错误事件
- 我的徽章;如果“;为什么没有调用关联的函数
- 为什么我的 ajax 调用没有生成,因为我包含 ajax 的 js 文件包含在 iframe 中
- 我的函数调用在回显中不起作用
- 通过 Jquery 调用 tr 属性并找到我的内部复选框
- 为什么我导入js文件的地方会影响我的调用