uni-app和Android 交互

1.uniapp 怎么集成 android 原生 activity
2.现在需要 原生Android程序 跳转到 uniapp的指定页面,并且携带参数 . 这两个 是相互独立的程序. 让它们之间产生交互.
3.可以帮忙下载资源 我有会员

可以利用scheme协议实现

  • 看下这篇博客,也许你就懂了,链接:Android原生集成uniapp小程序
  • 除此之外, 这篇博客: uniapp android 原生插件开发(一)中的 前言 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 最近公司要求研究一下 uniapp 的 android 原生插件的开发,为以后的工作做准备。这篇文章记录一下自己的学习过程,也帮助一下有同样需求的同学们 : )


  • 以下回答由chatgpt基于相关博客总结生成:

    我可以回答这个问题。

    1. 在uni-app中集成原生 Android activity的实现:

    首先,需要在Android原生应用程序中创建一个activity,这个 activity 中需要使用 uni-app 创建的 webview 渲染 uni-app 程序。相关的代码如下:

    public class UniAppActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_uni_app);
            WebView webview = (WebView) findViewById(R.id.webview);
            WebSettings settings = webview.getSettings();
            settings.setJavaScriptEnabled(true);
            settings.setDomStorageEnabled(true);
            settings.setDatabaseEnabled(true);
            settings.setUseWideViewPort(true);
            settings.setLoadWithOverviewMode(true);
            settings.setSupportZoom(true);
            settings.setBuiltInZoomControls(true);
            UniWebViewBridge.attachWebView(webview);
            webview.loadUrl("file:///android_asset/hello_uniapp/index.html");
        }
    }
    

    完成这个 activity 后,需要在指定的位置添加一个 WebView 来加载 uni-app 程序。在上述代码中,我们加载了一个位于 assets 目录下的 index.html 文件。

    在完成这个 activity 后,需要在 AndroidManifest.xml 文件中添加如下代码:

    <activity android:name=".UniAppActivity"></activity>
    

    这样就可以在 uni-app 的代码中直接调用这个 activity,以实现跳转和传参。

    1. 实现原生 Android 程序跳转到 uni-app 页面并传参:

    在原生 Android 程序中,可以使用 Intent 实现跳转,并通过 Bundle 来传递参数。相关代码如下:

    Intent intent = new Intent(context, UniAppActivity.class);
    Bundle bundle = new Bundle();
    bundle.putString("name", "张三");
    bundle.putInt("age", 18);
    
    Uri uri = Uri.parse("uniapp://page?id=1001&title=hello");
    intent.setData(uri);
    
    intent.putExtras(bundle);
    context.startActivity(intent);
    

    在上述代码中,我们使用 Intent 指定要跳转到的 activity(也就是前面提到的 UniAppActivity),并使用 Bundle 来传递参数。除此之外,我们还可以使用 Uri 对象来传递参数,这样就可以更方便地解析参数了。

    在 uni-app 程序中,则需要在 App.vue 中添加以下代码,来捕获跳转和传参:

    onLaunch(options) {
        console.log('App Launch', options)
      },
      onShow(options) {
        console.log('App Show', options)
        if (options && options.query) {
          console.log(options.query)
        }
      },
    

    通过在 App.vue 中实现 onShow 方法,就可以在 uni-app 程序中捕获原生 Android 传递过来的参数了。需要注意的是,这里的参数是通过 query 字段传递过来的。

    1. 帮助下载资源的问题:

    对于这个问题,我无法直接提供帮助,需要更具体的信息和指引才能展开解决方案。需要请提出更具体的需求和问题。