无需在 Android Studio 中打开浏览器即可点击 URL
Posted
技术标签:
【中文标题】无需在 Android Studio 中打开浏览器即可点击 URL【英文标题】:Hit a URL without opening browser in Android Studio 【发布时间】:2017-07-06 19:10:09 【问题描述】:我看过很多地方,尝试了很多东西,但似乎没有什么对我有用。任何人都可以在这里帮助我。我有一个简单的网址,我想在不打开手机浏览器的情况下点击它。我正在单击一个按钮,并且需要点击该 url,而无需打开浏览器。我不关心该页面上的内容,我只想加载它。我的 arduino cum ethernet shield IOT 项目基本上需要它,其中我用我的 android 手机控制我的电器。
这是我正在做的事情的 sn-p。 apk 生成时没有错误,但 url 没有以某种方式被击中。
谢谢你
public void led1on(View view)
try
URL u = new URL("http://172.17.27.173/?2");
HttpURLConnection http = (HttpURLConnection) u.openConnection();
http.connect();
catch (Exception e)
e.getMessage();
e.printStackTrace();
【问题讨论】:
您在清单中有INTERNET
权限吗?您是在 AyncTask
或 Thread
中调用此方法吗?
似乎没有任何效果 - 你是什么意思?什么错误/异常?
是的,我已经添加了 INTERNET 权限,我只是按下一个按钮,并在其中添加了 onClick 并引用了此功能。我希望我能正确实施它。
没有错误,apk 生成正确,但是当我按下按钮时,手机上没有任何反应,就像没有任何反应。
【参考方案1】:
您可以将其作为 Web 服务调用,而对结果不做任何事情。例如:
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://172.17.27.173/yourpage", params, new AsyncHttpResponseHandler()
@Override
public void onSuccess(String response) // 200 OK
// Do nothing
@Override
public void onFailure(int statusCode, Throwable error, String content) // Response not 200
// Some troubleshooting, etc.
);
为了了解如何使用上面的代码,你可以看看这里已经解释了如何使用 Android 的代码: http://loopj.com/android-async-http/
也可以使用其他一些库,例如 Apache Http 客户端: https://hc.apache.org/
try
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
myContent = httpEntity.getContent();
catch ...
【讨论】:
我相信为此我需要添加 AsyncHttpClient 依赖项。嗯,我并没有把我的头绕在 android studio 上。你愿意在这里帮助我如何做吗? 谢谢,它解决了我的目的。我在这个问题中实现了我想要的,谢谢大家的帮助。 没问题。我还添加了有关如何使用代码的更多说明。【参考方案2】:使用此方法在您的应用程序中打开网址
你可以像调用 api 一样调用这个 url,它调用 url 时没有任何显示。或者制作一个 api(网络服务)并从应用程序中点击,然后在 api 端调用您的 url。
【讨论】:
嗯,您能否将我重定向到我可以阅读您所说内容的任何链接,或者甚至为此编写一些代码,以便我可以正确理解它。谢谢你【参考方案3】:先做一个web view,然后让它不可见,这样就不会显示了。然后使用这个web view加载url就可以了,外部浏览器不会被执行。
val myWebView: WebView = findViewById(R.id.WebView)
使用下面的行来执行url就可以了。
myWebView.loadUrl("http://192.168.100.3/on")
myWebView.loadUrl("http://192.168.100.3/off")
演示程序如果我们使用拨动开关就可以了。
val myWebView: WebView = findViewById(R.id.WebView)
val switch1: ToggleButton = findViewById(R.id.toggleButton)
switch1.setOnCheckedChangeListener _, isChecked ->
Toast.makeText(this, if(isChecked) " ON" else " OFF", Toast.LENGTH_SHORT).show()
if(isChecked)
myWebView.loadUrl("http://192.168.100.3/on")
else
myWebView.loadUrl("http://192.168.100.3/off")
【讨论】:
以上是关于无需在 Android Studio 中打开浏览器即可点击 URL的主要内容,如果未能解决你的问题,请参考以下文章