我无法弄清楚如何通过网页浏览中的链接在xamarin中拨打电话。似乎我不能正确理解意图和活动,因为我将StartActivity放在错误的位置,并且编译器说它在当前上下文中不存在。除了那个错误,我甚至接近在我的代码中是正确的还是我错过了什么?我试图抓住webview中的超链接是否是电话号码,如果是,请启动电话。任何帮助nube将不胜感激。感谢
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;
}
}
}
答案 0 :(得分:0)
如果它不是http / https链接,只需使用Action_View启动它。 Android将负责其余部分。
Intent oURLIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(oURLIntent);