html怎么传值给app,通过打开html启动app并传递参数

经常可以看到有些app可以通过网页打开,这是通过自定义scheme来实现的

实现方式:在Activity中设置解析自定义协议

然后创建测试的html代码

从上面的代码可以看到协议头是自定义的“app”,在测试过程中发现,href中的链接在浏览器输入框里面无法直接打开,只能在html代码中打开。测试代码我已经放到服务器上了,如果需要可以点击打开。

测试结果:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_launcher);

Uri uri = getIntent().getData();

if (uri != null) {

StringBuilder builder=new StringBuilder();

builder.append("scheme=");

builder.append(uri.getScheme());

builder.append(" host=");

builder.append(uri.getHost());

builder.append(" param=");

builder.append(uri.getQueryParameter("param"));

Log.d("tag",builder.toString());

}

}

log输出内容

D/tag: scheme=app host=likui.me param=test

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android 中,可以通过 WebView 来显示 HTML 页面。要在 HTML 页面和 Android 应用程序之间传递值,可以使用 JavaScript 和 Android 的 WebView 提供的接口。 下面是一个简单的例子,演示了如何在 HTML 页面和 Android 应用程序之间传递值: 在 HTML 页面中,可以使用 JavaScript 来调用 Android 应用程序中的方法。例如,下面的代码演示了如何调用 Android 应用程序中的 showToast 方法: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>HTML 传值给 Android</title> <script> function showToast() { Android.showToast("Hello from HTML!"); } </script> </head> <body> <button onclick="showToast()">点击这里</button> </body> </html> ``` 在 Android 应用程序中,需要创建一个 WebView,并设置一个 WebChromeClient 和一个 WebViewClient。然后,可以在 Java 代码中定义一个 showToast 方法,并将其注入到 WebView 中,以便在 HTML 页面中调用。 ```java import android.os.Bundle; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.setWebChromeClient(new WebChromeClient()); mWebView.setWebViewClient(new WebViewClient()); mWebView.addJavascriptInterface(new WebAppInterface(), "AndroidInterface"); mWebView.loadUrl("file:///android_asset/index.html"); } public void showToast(String message) { Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); } private class WebAppInterface { @JavascriptInterface public void showToast(String message) { MainActivity.this.showToast(message); } } } ``` 注意,为了保证安全性,需要在注入方法上使用 @JavascriptInterface 注解,并在 AndroidManifest.xml 文件中添加以下代码: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 这样,在 HTML 页面中调用 Android.showToast("Hello from HTML!") 方法时,就会弹出一个 Toast,显示 "Hello from HTML!"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值