0

我试图在 JavaScriptInterface 的浏览器中打开链接,但它似乎不起作用。下面的代码有什么问题:

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;

public class JavaScriptInterface extends Activity{

    Context mContext;
    JavaScriptInterface(Context c) {
        mContext = c;
    }

    public void openLink(){

        Uri uri = Uri.parse("http://www.google.com");
        startActivity(new Intent(Intent.ACTION_VIEW, uri));

    }

}

我已经拥有所需的权限:

<uses-permission android:name="android.permission.INTERNET" />
4

1 回答 1

1

我不知道你为什么要扩展Activity. 尽管您mContext在构造函数中进行了初始化,但它永远不会用于startActivity().

您可能想要编写如下代码:

public class JavaScriptInterface {
    Context mContext;

    JavaScriptInterface(Context c) {
        mContext = c;
    }

    public void openLink(){
        Uri uri = Uri.parse("http://www.google.com");
        mContext.startActivity(new Intent(Intent.ACTION_VIEW, uri));
    }
}

(不扩展活动,并调用startActivity()mContext

顺便说一句,您不需要android.permission.INTERNET调用此意图的权限。您WebView可能需要它。

于 2013-04-16T09:19:55.027 回答