我正在创建一个应用程序,我必须使用android ...
界面php页面我是android dev中的新手...我使用http://android-er.blogspot.in中给出的代码...使用相同的代码进行演示我创建了一个小应用程序并试用了模拟器...但是点击后单击按钮没有什么是发生...也是logcat没有显示任何错误...
我的应用内容这些文件...
1 ...主要活动的java代码
2 .... html代码(保存在apache服务器中)
3 ... main.xml包含Web视图
1 ---主要活动代码..
package com.example.prac_jscript;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.webkit.WebView;
public class MainActivity extends Activity {
WebView mybrowser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mybrowser =(WebView)findViewById(R.id.webView1) ;
mybrowser.addJavascriptInterface(new MyjavaScriptInterface(this), "AndroidFUNCTION");
mybrowser.getSettings().setJavaScriptEnabled(true);
mybrowser.loadUrl("http://192.168.1.3/copy.html");
}
public class MyjavaScriptInterface{
Context mContext;
public MyjavaScriptInterface(Context c) {
// TODO Auto-generated constructor stub
mContext = c;
}
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();
}
}
}
2 - html文件的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body> <p> </p>
<p> </p>
<p> </p>
<p>
<label>
<input type="submit" value="Copy" onClick="openAndroidDialog()"/>
<script type="text/javascript">
function openAndroidDialog() {
AndroidFunction.openAndroidDialog();
}
</script>
</label>
</p>
</body>
</html>
请帮帮我......
答案 0 :(得分:0)
不要担心小错误
更改此行
mybrowser.addJavascriptInterface(new MyjavaScriptInterface(), "AndroidFUNCTION");
要
mybrowser.addJavascriptInterface(new MyjavaScriptInterface(), "AndroidFunction");
您的JavascriptInterface
应该喜欢这个
public class MyjavaScriptInterface{
MyjavaScriptInterface() {
}
@JavascriptInterface
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();
}
}
<强>输出:强>
如何打开watsapp?
Intent waIntent = new Intent(Intent.ACTION_SEND);
waIntent.setType("text/plain");
String text = "YOUR TEXT HERE";
waIntent.setPackage("com.whatsapp");
if (waIntent != null) {
waIntent.putExtra(Intent.EXTRA_TEXT, text);//
startActivity(Intent.createChooser(waIntent, "Share with"));
} else {
Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT)
.show();
}
答案 1 :(得分:0)
接口名称区分大小写。这两个不匹配:
mybrowser.addJavascriptInterface(新的MyjavaScriptInterface(this),“ AndroidFUNCTION ”);
<强> AndroidFunction 强> .openAndroidDialog();
编辑:
API表示“对于针对API级别JELLY_BEAN_MR1及更高版本的应用程序,只能使用JavascriptInterface注释的公共方法。”
它还声明交互发生在后台线程上,因此使用runOnUiThread在主线程上发布任何ui内容。