使用Jscript调用Android函数
我正在创建一个应用程序中,我必须接口php页面使用android 我是android开发的新手。。。我使用中给出的代码。对于演示,使用相同的代码,我创建了一个小应用程序并在emulator上进行了尝试…但在单击“单击”按钮后,什么都没有发生…logcat也没有显示任何错误 我的应用程序内容这些文件。。。 1…mainactivity的java代码使用Jscript调用Android函数,android,Android,我正在创建一个应用程序中,我必须接口php页面使用android 我是android开发的新手。。。我使用中给出的代码。对于演示,使用相同的代码,我创建了一个小应用程序并在emulator上进行了尝试…但在单击“单击”按钮后,什么都没有发生…logcat也没有显示任何错误 我的应用程序内容这些文件。。。 1…mainactivity的java代码 2…html代码(保存在apache服务器中) 3.main.xml包含web视图 1---主活动代码 package com.example.pra
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>
无标题文件
函数openAndroidDialog(){
AndroidFunction.openAndroidDialog();
}
请帮我…不要担心小错误 换行
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();
}
接口名称区分大小写。这两个不匹配: mybrowser.addJavascriptInterface(新的MyjavaScriptInterface(this),“AndroidFUNCTION” AndroidFunction.openAndroidDialog() 编辑: 声明称,“对于针对API级别JELLY_BEAN_MR1及以上的应用程序,只能从JavaScript访问带有JavascriptInterface注释的公共方法。”
它还声明交互发生在后台线程上,因此在主线程上发布任何ui内容。在更改之前,您是否尝试使用与所述完全相同的代码使其工作?该代码中存在相同的问题,、logcat的最后一行…启动TG#0,0x2a22d308..之后没有显示任何内容…请帮助我查看我引用的代码…是的,在设备上也只显示html..单击“没有显示任何内容”之后,,,,,谢谢Biraj…终于完成了,现在很高兴…我对上下文感到困惑,,,你能详细说明为什么不在这里使用上下文…上下文不是问题。但这是没有用的@JavascriptInterface是必需的,同样的问题发生在我从这篇文章中引用的代码中没有显示对话框,,,请帮助…你好,卡卡…请参考我的问题。。。
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();
}