我是制作android应用程序的初学者。我已经用HTML制作了一个Web应用程序,希望能够在我在android studio中制作的应用程序中使用。我设法在android studio中制作了一个简单的Web视图,这使我的Web应用程序在设备上进行测试时可以正常工作。唯一的问题是,Web视图可以处理我的Web应用程序中的所有URL。Web应用程序由选项卡组成,当我单击它们时,这些选项卡将我定向到不同的页面。但是我有联系按钮和不同的链接,希望从Web视图中“释放”这些链接。让我们以联系人按钮为例。我有一个用于测试应用程序的Galaxy Note。当我在手机上打开应用程序时,我会看到Web应用程序,并且可以浏览。当我单击联系人按钮时,Web视图会处理链接,并给我一个“页面无法加载”的提示,而不是在手机上打开邮件应用程序。我也有一些带有链接的按钮,希望能够在手机的外部浏览器中打开它们。希望您能理解我的问题,对于我的英语不好,我感到抱歉。
这是我的一些Web视图代码。
Mainactivity.java
public class MainActivity extends ActionBarActivity {
WebView browser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
browser = (WebView) findViewById(R.id.wvwMain);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setLoadWithOverviewMode(true);
browser.getSettings().setUseWideViewPort(true);
browser.setWebViewClient(new ourViewClient());
try {
browser.loadUrl("http://WebAppURL");
} catch (Exception e) {
e.printStackTrace();
}
}
OurViewClient.java
public class ourViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
尝试以这种方式实现您的WebViewClient
喜欢
private class VideoWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
try{
System.out.println("url called:::" + url);
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
startActivity(intent);
} else if (url.startsWith("http:")
|| url.startsWith("https:")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
} else if (url.startsWith("mailto:")) {
MailTo mt=MailTo.parse(url);
send_email(mt.getTo());
}
else {
return false;
}
}catch(Exception e){
e.printStackTrace();
}
return true;
}
}
并创建发送邮件功能,例如
public void send_email(String email_add) {
System.out.println("Email address::::" + email_add);
final Intent emailIntent = new Intent(
android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { email_add });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "");
yourActivity.this.startActivity(
Intent.createChooser(emailIntent, "Send mail..."));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句