gpt4 book ai didi

android - Webview - 在外部应用程序和浏览器/android 中打开链接

转载 作者:太空宇宙 更新时间:2023-11-03 12:34:30 26 4
gpt4 key购买 nike

我是制作 Android 应用程序的初学者。我用 HTML 制作了一个 Web 应用程序,我希望能够在我在 android studio 中制作的应用程序中使用它。我设法在 android studio 中制作了一个简单的 web View ,这使得我的 web 应用程序在我的设备上测试时工作正常。唯一的问题是 Web View 处理我的 Web 应用程序中的所有 URL。 Web 应用程序由选项卡组成,当我单击这些选项卡时,这些选项卡会将我引导至不同的页面,这正是我想要的。但我有联系按钮和不同的链接,我想从 WebView 中“发布”。让我们以联系人按钮为例。我有一个 Galaxy note,我用它来测试我的应用程序。当我在手机上打开我的应用程序时,我看到了我的 Web 应用程序并且我可以四处导航。当我单击联系人按钮时,Web View 会处理该链接并给我一个“页面无法加载”,而不是在我的手机上打开邮件应用程序。我还有一些带有链接的按钮,我希望这些按钮能够在手机上的外部浏览器中打开。我希望你能理解我的问题,我为我糟糕的英语感到抱歉。

这是我的一些网页 View 代码。

主 Activity .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..."));

}

关于android - Webview - 在外部应用程序和浏览器/android 中打开链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23869429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com