我正在使用Xamarin編寫一個Android應用程序,並且在該應用程序中,我有一個需要在創建應用程序時加載的webview,並且在完全加載後,我將一些javascript調用到HTML頁面來設置圖形。從WebChromeClient訪問活動方法
我試圖使用自定義WebChromeClient
覆蓋OnProgressChanged
方法,當它完全加載時,它調用我的MainActivity
中的方法。
這裏是MainActivity
代碼:
using System;
using System.Text;
using System.Timers;
using System.Collections;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Text;
using Android.Text.Style;
using Android.Webkit;
public class MainActivity : Activity
{
WebView graph;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Main);
graph = FindViewById<WebView>(Resource.Id.webGraph);
//Initializes the WebView
graph.SetWebChromeClient(new myWebChromeClient());
graph.Settings.JavaScriptEnabled = true;
graph.LoadUrl("file:///android_asset/graph.html");
而且myWebChromeClient
類我創建看起來像這樣:
class myWebChromeClient : WebChromeClient
{
public override void OnProgressChanged(WebView view, int newProgress)
{
base.OnProgressChanged(view, newProgress);
if (newProgress == 100) {MainActivity.setUpGraph();}
}
}
的myWebChromeClient
是MainActivity
內,但我無法訪問setUpGraph
方法即使它是一種公開的方法。
任何幫助將不勝感激!
MainActivity.setUpGraph() - 這是一個靜態方法嗎?如果不是,則需要在MainActivity的實例上調用它,而不是類本身。 – Jason
它不是靜態的,並且接收特定於MainActivity類的參數。我如何訪問MainActivity的實例並且它是當前正在運行的成員? –