Android 如何从zamarin中的webview链接拨打电话
我不知道如何通过网络视图中的链接在xamarin中拨打电话。似乎我没有正确理解意图和活动,因为我将StartActivity放在了错误的位置,编译器说它在当前上下文中不存在。除了那个错误,我的代码是否接近正确,或者我是否遗漏了一些东西?我试图捕捉webview中的超链接单击是否是电话号码,如果是,则启动电话。任何对努比人的帮助都将不胜感激。谢谢Android 如何从zamarin中的webview链接拨打电话,android,webview,xamarin,Android,Webview,Xamarin,我不知道如何通过网络视图中的链接在xamarin中拨打电话。似乎我没有正确理解意图和活动,因为我将StartActivity放在了错误的位置,编译器说它在当前上下文中不存在。除了那个错误,我的代码是否接近正确,或者我是否遗漏了一些东西?我试图捕捉webview中的超链接单击是否是电话号码,如果是,则启动电话。任何对努比人的帮助都将不胜感激。谢谢 using System; using Android.Webkit; using Android.App; using Android.Content
using System;
using Android.Webkit;
using Android.App;
using Android.Content;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Text;
using Android.Net;
namespace bobo
{
[Activity (Label = "bobo", MainLauncher = true, Icon = "@drawable/icon", Theme = "@android:style/Theme.NoTitleBar")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
var webview = new WebView(this);
webview.Settings.JavaScriptEnabled = true;
webview.Settings.SetGeolocationEnabled(true);
webview.SetWebViewClient(new MyWebViewClient());
webview.SetWebChromeClient(new MyWebChromeClient(this));
SetContentView(webview);
}
}
public class MyWebViewClient : WebViewClient
{
public override bool ShouldOverrideUrlLoading(WebView view, string url)
{
if (url.StartsWith("tel:")) {
var uri = Android.Net.Uri.Parse(url);
var intent = new Intent (Intent.ActionDial, uri);
StartActivity(intent);
}
else if(url.StartsWith("http:") || url.StartsWith("https:")) {
view.LoadUrl(url);
}
return true;
}
}
public class MyWebChromeClient : WebChromeClient
{
private readonly Context _context;
public MyWebChromeClient(Context context)
{
_context = context;
}
}
}如果它不是http/https链接,只需使用“操作”视图启动它即可。剩下的就交给安卓了
Intent oURLIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(oURLIntent);
在
MyWebViewClient
类中,如何获得对StartActivity
的引用而不传递对MainActivity类的引用?