Search code examples
androidhtmlurlandroid-activityassets

How to open MainActivity from asset file in another activity


I have two activities called:

  1. MainActivity.java
  2. page1.java

page1.java contains my asset file (file:///android_asset/index.html). This is working very well.

Code in page1.java contains something like this:

engine.loadUrl("file:///android_asset/index.html");

I want to add an URL in index.html file to go to MainActivity.java.

Can you help me?


Solution

  • In index.html add

    <a href="javascript:Android.launchMain()">MainActivty</a>
    

    Now create a new class named ActivityLauncher

    public class ActivityLauncher {
    private Context m_context;
    
    public ActivityLauncher(Context context) {
        m_context = context;
    }
    @JavascriptInterface
    public void launchMain() {
        m_context.startActivity(new Intent((Activity)m_context,
             MainActivity.class));
       }
    }
    

    Now add this lines in page1.java

    webView.addJavascriptInterface(new ActivityLauncher(this), "Android");