我是phonegap和我的项目的新手,我需要调用一个活动 html页面中的javascript,有可能吗?
public void capturePhoto() {
JavascriptInterface.this.runOnUiThread(new Runnable() {
@Override
public void run() {
try{
Intent i = new Intent(JavascriptInterface.this, GetPicture.class);
startActivity(i);
}catch(Exception e){
Toast.makeText(mContext, e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
答案 0 :(得分:0)
我不熟悉Android上的web编程或javascript接口,所以我不知道是否可以用这些来启动任意意图。
但是,我认为您可以通过某种方式简单地打开链接。如果您发现无法以其他方式启动活动,您仍然可以使用自定义URI方案获得一些工作。
基本上,我们的想法是为您要启动的活动添加一个intent过滤器,为该活动注册一个自定义URI方案。然后,当您尝试使用该方案打开链接时,Android会将其映射到您的活动的android.intent.action.VIEW意图。
例如,如果要在要启动的活动的intent过滤器中包含以下内容:
<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="penroser"/>
</intent-filter>
然后,您可以启动penroser:BLAH
之类的网址,它实际上应该启动您的活动。
但是,以上假设您可以向要启动的活动添加intent过滤器。但是,如果您想要启动更一般的意图,或者发起一个您无法控制的活动,那么事情会变得更复杂。
在这种情况下,您可以定义一个“spring-board”活动,其目的是接收自定义URI意图,然后使用您定义的某种格式解码一些意图信息,然后基于解码后启动意图信息。
例如,假设您注册了自定义URI方案launchactivity:
,然后您可以启动类似于:launchactivity://activity?component=com.example.MyActivity
的链接,然后在弹出板的Activity中解析逻辑从URI中输出组件名称并启动该组件的意图。
根据您的具体需求,您应该能够在launchactivity:
网址中传递您需要的任何意图数据