来自JavascriptInterface的android startActivity

Red*_*ile 2 javascript java android android-intent

简单的一般问题.

Webview连接到我的JavascriptInterface类,它肯定是功能性的.但是,因为JavascriptInterface不扩展Activity,所以我似乎无法使用startActivity(intent)对一个新活动进行Intent;

我应该扩展活动吗?是否有另一种方法来进行另一项活动?(在我的特殊情况下,即时通讯试图加入YouTube应用)

package com.privateized.moreprivate;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import android.widget.Toast;

public class JavaScriptInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    JavaScriptInterface(Context c) {
        mContext = c;
    }

    /** Show a toast from the web page */
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }



    ///// vvvvv This no Worky vvvvv Just crashes ////////
    public void YouTube(String id) {
        Log.d("JS", "Launching YouTube:" + id);
        Activity activity = new Activity();
        String videoId = id;
        Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:"+videoId)); 
        i.putExtra("VIDEO_ID", videoId); 
        Log.d("JS", "Starting Activity");
        activity.startActivity(i);
    }

}
Run Code Online (Sandbox Code Playgroud)

sga*_*man 5

只是用mContext.startActivity(i);

无需创建Activity并且无需扩展Activity,您只需要对已存储的Context进行引用.