html call android apk的方法汇总

现在很多应用都是混合型的,遇到一些Html页面开启APK的场景。那么Html调用android有哪些方法呢?

1.如果是自己开发的浏览器APP,那么html页面用js直接和android java进行交互就可以实现。

2.如果是默认的系统浏览器访问html,那么可以选择:

html js:window.location.herf="www.eg.com"

 

A:

<activity android:name=".DetailActivity" >
  <intent-filter >
    <data android:scheme="http" />
android:host="www.eg.com"
android:pathPrefix="/someresource/" <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>

  可以看到,android是从intent的配对进制来进行过滤和选择的,其中和链接对应的地址我们有两个选择,custom scheme可以是网址的形式,比如www.example.com或者是自定义的内容,比如my.custom.scheme。

这种方法和ios端html call app的做法非常相似,html部分可以保持代码一致。

自定义的内容,关联很强,用户点击链接只会打开scheme吻合的APP,其中intent机制起过滤作用,地址要完全吻合host,pathPrefix等过滤条件。http的通用scheme不能保证直接开启到你的APP,可能会显示不同的应用选择弹窗。

自定义内容可能因为安全性的原因,在4.4版本测试的时候,window.location.herf不能开启APP,用户手动点击链接却可以。

链接地址的传参可以用www.eg.com/read?param1=xxx&param2=xxx进行传递。java端getIntent.getData 获取到Uri之后进行解析参数。

 

B:android自己独特的方法:

html:

<a href="intent:#Intent;action=com.appname.CUSTOM_ACTION;S.para1=123456;i.number=4;end">click to open</a>

java:

<activity
    android:name=".MyActivity"
    android:screenOrientation="sensorLandscape" >
    <intent-filter>
        <action android:name="com.appname.CUSTOM_ACTION" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>
</activity>

intent 自定义的URI格式如下

intent:
   HOST/URI-path // Optional host 
   #Intent; 
      package=[string]; 
      action=[string]; 
      category=[string]; 
      component=[string]; 
      scheme=[string]; 
   end; 

参数的声明格式为type.varName的方式,分号;连接 

<type>.<key>=<value>

 

S =String
B =Boolean
b =Byte
c =Character
d =Double
f =Float
i =Integer
l =Long
s =Short

比如S.str=sss;i=123;

adb 命令行debug的方法:

 

adb shell am start -a android.intent.action.VIEW -d "http://example.com/gizmos" com.example.android

其中-a -d -c 等分别代表action data category 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。