大家好我正在开发一个Android应用程序,其中我想在html文件上单击一个按钮后加载mainactivity.java文件,我尝试了一个方法,如下面的代码所示,但它要么带我到HTML查看或activit_main代码取决于我提出的评论,我想在我的mainactivity上有facebook登录代码,所以每当用户按下index.html文件中的按钮时,它应该将我重定向到mainactivity然后返回到html .....任何想法如何去做
这是我的主要活动的样本
import android.os.Bundle;
import org.apache.cordova.*;
import android.view.Menu;
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
setContentView(R.layout.activity_main);
}
}
这是我的界面代码
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
public class ActivityLauncher {
private Context m_context;
public ActivityLauncher(Context context) {
m_context = context;
}
public void launchActivity() {
m_context.startActivity(new Intent((Activity)m_context,
Activity2.class)); // Here you replace by your activity (ContactUs)
}
}
最后这就是如何从html调用我的java文件
<body>
<a href="javascript:Android.launchActivity()">Link</a>
</body>
答案 0 :(得分:0)
您无法直接从HTML页面调用Java方法,您必须使用自定义网址并使用WebViewClient
<body>
<a href="custom://launchActivity">Link</a>
</body>
在WebViewClient
实施中,您必须覆盖shouldOverrideUrlLoading()
方法。
此方法的第二个参数是作为String对象提供的url。
如果网址与您在网页中定义的自定义网址相匹配,则可以从WebViewClient
和返回true 启动新活动。
如果没有,则返回false,以便webview像往常一样处理URL。
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {
if ("custom://launchActivity".equals(url)) {
// TODO Launch your activity
return true;
}
// Let the WebView handle the url
return false;
}
}
不要忘记将WebViewClient
附加到WebView
WebView.setWebViewClient()
编辑:我从您的代码中看到您正在使用PhoneGap。这应该在你的问题中更明显。我的答案是原生 Android开发
答案 1 :(得分:0)
你真的很亲密,所有你想念的是一个javascript界面:
关于您的主要活动:
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
ActivityLauncher al = new ActivityLauncher (this);
appView.addJavascriptInterface(al, "ActivityLauncher"); //Create your interface
}
}
在您的JavaScript上,您可以使用:
<body>
<a href="javascript:ActivityLauncher.launchActivity()">Link</a>
</body>