将信息JavaScript发送到Android(网络视图)
Sending info JavaScript to Android (webview)
我的源代码有问题,我已经编写了一个javascript函数,通过一个简单的按钮将其激活到HTML页面中。
代码如下:
<html>
<head>
<base href="http://localhost:8080/testAndroidReturn/" target="_blank">
</head>
<body>
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-primary">
<div class="panel-heading">
<div class="panel-title">
<h4>teste android</h4>
</div>
</div>
<div class="panel-body">
<input type="text" id="text" value="" />
<button type="submit" onclick="saveText()"> submit </button>
</div>
</div>
</div>
<script type="text/javascript">
function saveText(){
alert("coucou");
AndroidFunction.showToast("COUCOU");
}
</script>
</body>
</html>
我在安卓系统中写了一个项目,在主要活动中我写了这个:
package com.bepark.myapplication.app;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.Toast;
public class MainActivity extends Activity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
final MyJavaScriptInterface myJavaScriptInterface
= new MyJavaScriptInterface(this);
mWebView.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://10.10.202.184:8080/testAndroidReturn/");
}
public class MyJavaScriptInterface {
Context mContext;
MyJavaScriptInterface(Context c) {
mContext = c;
}
public void showToast(String toast){
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
public void openAndroidDialog(){
AlertDialog.Builder myDialog
= new AlertDialog.Builder(MainActivity.this);
myDialog.setTitle("DANGER!");
myDialog.setMessage("You can do what you want!");
myDialog.setPositiveButton("ON", null);
myDialog.show();
}
}
}
但是,当我启动我的android应用程序并点击按钮中的WebView
时,它什么也不做,日志中有这样的错误消息:
04-16 04:24:14.458 1212-1212/com.bepark.myapplication.app I/Choreographer﹕ Skipped 148 frames! The application may be doing too much work on its main thread.
04-16 04:24:14.578 1212-1212/com.bepark.myapplication.app I/chromium﹕ [INFO:CONSOLE(22)] "Uncaught TypeError: Object [object Object] has no method 'showToast'", source: http://10.10.202.184:8080/testAndroidReturn/ (22)
我不明白为什么?
如果您的目标是Jelly Bean操作系统,请尝试将注释@JavascriptInterface
添加到您的公共方法中。
希望能有所帮助。
相关文章:
- Cordova/Phonegap在主要的Cordova网络视图中加载外部站点
- 安卓系统:通过loadUrl运行javascript时,网络视图中的视频会冻结
- 如何检查人行横道网络视图
- Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
- 我可以在不显示网络视图的情况下使用phonegap吗
- 安卓网络视图中的无响应触摸
- Cordova网络视图超时错误
- Cordova嵌入式网络视图未响应navigator.camera未定义
- WebView加载URL(“javascript:XYZ”)在我的网络视图中执行了好几次
- 网络视图中视频的页边距
- 如何在Android网络视图中完全禁用所有输入的软键盘
- 从SQlite中提取Lat-Long并在网络视图中显示
- Android网络视图:JavaScript在触摸时停止
- 无法在android网络视图中使用AJAX加载HTML部分
- Android网络视图”;未捕获的SyntaxError:意外的令牌ILLEGAL“;
- JavaScript未在Android网络视图中重新加载
- 网络视图的电子预加载脚本不起作用
- 清除网络视图数据
- 链接安卓按钮和网络视图 - 可能
- 谷歌地图v3更改标记图标在安卓网络视图