我们为java活动做的方式是使用Intent的额外功能. Android上的java Activity和AIR app是什么参数传递机制.目前我们通过共享一个公共位置(sqlite db)并每秒轮询它来传递参数.这不是一个好的设计,我相信必须有一些好的方法来做到这一点.请赐教.
解决方法
By using this feature an application can be made invokable from browser or native android application. When the application is invoked from browser/android-app,an
InvokeEventis dispatched to the application.
For making an application invokable from browser,add this in your application descriptor (as child of application element):
<android>
<manifestAdditions>
<![CDATA[
<manifest>
<application>
<activity>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.broWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="testapp"/>
</intent-filter>
</activity>
</application>
</manifest>
]]>
</manifestAdditions>
</android>
Now to launch your application from browser,provide the url as:
testapp://. An example is:
<a href="testapp://">click here to launch air test app from browser</a>
Clicking on this link will launch your application.
If you want to pass additional arguments to your application from browser,use something like this:
<a href="testapp://arg1=value&secondArgument=someValue">click here to launch air test app from browser</a>
Once your application gets launched,fetch the arguments property of received
InvokeEvent. This will contain the complete URI (testapp://arg1=value&secondArgument=someValue) and you can parse it to extract the arguments.
从here起.