我有个 android webview app,是一个菜单样式的,里面有多个 app 但这些 app 是从数据库里读取到的,包括 app id, package name, logo 之类的资料,用户点击后会启动这个程序。因为这是 Web 程序,所以我只能写 URL 来启动它,Google 上搜索了一下,人们都说定义一个特定的 scheme 就像 geo://40,140 这样的 URL 能启动 Google Maps 一样,但这要求目标程序已经定义这个 scheme, 而我的情况是目标程序不是我写的,无法要求人家事先定义这个 scheme。有没有其它的方法,我只需要给出 Android package 或 app id 之类的参数,由 Android 去启动它?
另外,同样在 iPhone 上怎么做?在这个版,只能发 100 分贴。

解决方案 »

  1.   

    android上面:利用packagemanager,去查找这个app, 如果有的话,就找出他的main activity, 一般来说就是出现在home中的activity,找到后,直接启动就是了。
    iPhone:不知道,哈哈,求高手
      

  2.   

    Android 有内置的 activity 用来启用给定包名的吗?
      

  3.   

    java代码肯定得写,给一个package name就可以启动一个应用,PackageManager pm=getPackageManager();
    Intent intent=pm.getLaunchIntentForPackage(packageName);
    if(intent!=null)startActivity(intent);你所说的geo只是一个协议,手机中任何一个支持这种协议的应用都可能会打开