Android 与 H5 数据的传递

本文总结了Android原生与H5混合开发时的数据传递经验,包括Android调用H5函数并传递参数,以及H5如何接收这些参数。在实际开发中遇到了不少问题,但通过学习和实践,已成功解决并分享给读者。
摘要由CSDN通过智能技术生成

最近项目开发使用了 Android 原生和 H5 的混合开发,以前也没怎么接触过。所以这次和 H5 联调对接还是踩了很多坑,这里也做个总结希望可以帮助到大家...

首先 Android 和 H5 主要的坑是在彼此之间的数据交互;而如果只是彼此之间简单的界面调用的话,还不是很难。网上搜索有很多的资料,这里也就不说了。

1,Android 调用 H5 的函数,并且 Android 端传递相关参数到 H5;

H5 界面代码如下:

getFromAndroid = function(userid){
    arr = userid.split(",")
     
}     // android to js
功能函数 getFromAndroid 中的参数 userid 就是 Android 端传递过来的参数值,在 H5 代码中就也可以直接使用了...

而 Android 端代码如下: 

WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
webSettings.setAppCacheEnabled(true);
webSettings.setAllowContentAccess(true);

mWebView.addJavascriptInterface(new JsInteration(), "android");

mWebView.loadUrl("file:///android_asset/tougu/index.html");

mWebView.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        //页面开始加载前
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);

        String h5Str = mUserId + 
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤从Android Scheme接口获取数据: 1. 在AndroidManifest.xml文件中注册一个Activity,用于接收要传递数据。例如: ```xml <activity android:name=".MyActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="myscheme" /> </intent-filter> </activity> ``` 在这个示例中,我们注册了一个名为"MyActivity"的Activity,并且指定了它可以接收myscheme协议的数据。 2. 在你的H5页面中,通过Android Scheme协议发送数据。例如: ```html <a href="myscheme://data?key1=value1&key2=value2">点击这里传递数据</a> ``` 在这个示例中,我们通过myscheme协议发送了一个包含key1和key2两个参数据。 3. 在MyActivity中,通过以下代码获取传递数据: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Uri data = getIntent().getData(); if (data != null) { String key1 = data.getQueryParameter("key1"); String key2 = data.getQueryParameter("key2"); // 处理获取到的数据 } } ``` 在这个示例中,我们通过getIntent().getData()方法获取传递过来的数据,并通过getQueryParameter()方法获取指定的参值。最后,我们可以在onCreate()方法中处理获取到的数据。 这是一个简单的示例,你可以根据你的具体需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值