2012-08-30 34 views
1

我正在使用此代码使用HTML按钮调用Android Activity。但它不适合我。我只想从我的html页面点击按钮时调用我的Android活动“echos.class”。在JavaScript Webview中调用意图

我JavaScriptInterface类

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) { 
     Intent mainIntent = new Intent(mContext, echos.class); 
     JavaScriptInterface.this.startActivity(mainIntent); 


    } 


    private void startActivity(Intent mainIntent) { 
     // TODO Auto-generated method stub 

    } 
} 

我的WebView类

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     WebView myWebView = (WebView) findViewById(R.id.web1); 
     WebSettings webSettings = myWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     myWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android"); 
     myWebView.loadUrl("file:///android_asset/www/index.html"); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

} 

我的HTML页面

<html> 
<head> 

</head> 
<body> 
    <input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" /> 

    <script type="text/javascript"> 
    function showAndroidToast(toast) { 
     Android.showToast(toast); 
    } 
</script> 
</body> 
</html> 
+0

你的方法startActivity是空的。开始活动mContext.startActivity(mainIntent); – Pasha

回答

2

变化

JavaScriptInterface.this.startActivity(mainIntent); 

mContext.startActivity(mainIntent); 

为JavaScriptInterface是不是在接口JavaScriptInterface活动

+0

http://stackoverflow.com/questions/12191066/android-web-view-to-android-java-activity-class/12191304#comment16324806_12191304我希望被回答erlier .. –

+0

仍然无法工作 – user1635137

+0

@Athul Harikumar,你很棒。 –

相关问题