1

我可以借助 android 中的链接从 .HTML 文件中调用 .java 文件吗?

我是android应用程序开发的新手。我没有那么多想法。所以请帮助我。

.java 文件的位置在 src/my_package_name 文件夹中,.HTML 文件的位置在 assets/www 文件夹中。

我试图通过 html 文件中的锚标记来解决这个问题,我已经给出了href="ContactUs.java"链接。它不工作。

模拟器显示错误。那是应用程序错误。未找到请求的文件。ContactUs.java(file:///android_asset/ContactUs.java)

我不确定它是否正确。

所以请建议我是否有更好的方法来做到这一点?

提前致谢..

4

3 回答 3

2

这是从 html 打开活动的解决方案。

首先您的主要活动包含您的网络视图:

package com.test.jsitest;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class WVActivity extends Activity {

    private WebView m_wv = null;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wv);
        m_wv = (WebView) findViewById(R.id.webview);
        m_wv.getSettings().setJavaScriptEnabled(true);
        m_wv.loadUrl("file:///android_asset/www/index.html");
        m_wv.addJavascriptInterface(new ActivityLauncher(this), "Android");
    }
}

然后你的Javascript界面​​:

package com.test.jsitest;

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 文件:

<DOCTYPE html>
<html>
    <head>

    </head>
    <body>
        <a href="javascript:Android.launchActivity()">Link</a> 
    </body>
</html>

我对其进行了测试,它在 8 级 API 下工作。我希望它对你有帮助。

于 2012-12-17T22:48:30.143 回答
0

我想你正在寻找这样的东西:http: //developer.android.com/guide/webapps/webview.html#BindingJavaScript

你不能通过 html 来做,但你可以通过 javascript,使用 JavaScript 接口。

于 2012-12-15T11:27:33.407 回答
0

你根本不能调用java文件。android上的Java文件很可能是应用程序的一部分(因此是活动) - 通常你必须使用一些URL协议,androis系统会为你调用合适的应用程序这里有更多关于它的信息: 如何从javascript调用android应用程序

于 2012-12-15T15:37:40.693 回答